?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
APPEND key value
自2.0.0起可用。
時(shí)間復(fù)雜度: O(1)。分?jǐn)偟臅r(shí)間復(fù)雜度為O(1),假設(shè)附加值很小,并且已有值為任意大小,因?yàn)镽edis使用的動(dòng)態(tài)字符串庫(kù)將使每次重新分配的可用空間加倍。
如果key
已經(jīng)存在,并且是一個(gè)字符串,則該命令將value
在字符串的末尾附加。如果key
不存在,它將被創(chuàng)建并設(shè)置為空字符串,因此 APPEND 在這種特殊情況下將與SET類似。
整數(shù)回復(fù):追加操作后的字符串長(zhǎng)度。
redis> EXISTS mykey (integer) 0
redis> APPEND mykey "Hello" (integer) 5
redis> APPEND mykey " World" (integer) 11
redis> GET mykey "Hello World"
APPEND 命令可用于創(chuàng)建固定大小樣本列表的非常緊湊的表示,通常稱為時(shí)間序列。每次新樣品到達(dá)時(shí),我們都可以使用命令將其存儲(chǔ)起來(lái)
APPEND timeseries "fixed-size sample"
訪問(wèn)時(shí)間序列中的單個(gè)元素并不難:
可以使用 STRLEN 來(lái)獲取樣本數(shù)量。
GETRANGE 允許隨機(jī)訪問(wèn)元素。如果我們的時(shí)間序列具有關(guān)聯(lián)的時(shí)間信息,我們可以輕松實(shí)現(xiàn)二分查找,以便將GETRANGE 與 Redis 2.6 中提供的 Lua 腳本引擎結(jié)合起來(lái)。
SETRANGE 可以用來(lái)覆蓋現(xiàn)有的時(shí)間序列。
這種模式的局限性在于,我們被迫進(jìn)入只有附加模式的操作模式,因?yàn)镽edis目前缺少能夠修剪字符串對(duì)象的命令,所以無(wú)法輕松地將時(shí)間序列縮減到給定大小。然而,以這種方式存儲(chǔ)的時(shí)間序列的空間效率是顯著的。
提示:可以根據(jù)當(dāng)前的 Unix 時(shí)間切換到不同的密鑰,這樣每個(gè)密鑰可能只有相對(duì)較少的采樣數(shù)量,以避免處理非常大的密鑰,并且使此模式更多友好可以分布在許多 Redis 實(shí)例中。
使用固定尺寸字符串采樣傳感器溫度的示例(使用二進(jìn)制格式在實(shí)際實(shí)現(xiàn)中更好)。
redis> APPEND ts "0043" (integer) 4
redis> APPEND ts "0035" (integer) 8
redis> GETRANGE ts 0 3 "0043"
redis> GETRANGE ts 4 7 "0035"