單值單value
常用
set/get/del/append/strlen
Incr/decr/incrby/decrby,一定要是數字才能進行加減
getrange
O(N) N是字符串長度,復雜度由最終返回長度決定,但由於通過一個字符串創建子字符串是很容易的,它可以被認為是O(1)。
例子
redis> SET mykey "This is a string" OK redis> GETRANGE mykey 0 3 "This" redis> GETRANGE mykey -3 -1 "ing" redis> GETRANGE mykey 0 -1 "This is a string" redis> GETRANGE mykey 10 100 "string" redis>
setrange
覆蓋key對應的string的一部分,從指定的offset處開始,覆蓋value的長度。
如果offset比當前key對應string還要長,那這個string后面就補0以達到offset。不存在的keys被認為是空字符串,所以這個命令可以確保key有一個足夠大的字符串,能在offset處設置value。
返回值
該命令修改后的字符串長度
例子
基本使用方法:
redis> SET key1 "Hello World" OK redis> SETRANGE key1 6 "Redis" (integer) 11 redis> GET key1 "Hello Redis" redis>
補0的例子:
redis> SETRANGE key2 6 "Redis" (integer) 11 redis> GET key2 "\x00\x00\x00\x00\x00\x00Redis" redis>
SETEX key seconds value
時間復雜度:O(1)
設置key對應字符串value,並且設置key在給定的seconds時間之后超時過期。這個命令等效於執行下面的命令:
例子
redis> SETEX mykey 10 "Hello" OK redis> TTL mykey (integer) 10 redis> GET mykey "Hello" redis>
SETNX key value
時間復雜度:O(1)
將key
設置值為value
,如果key
不存在,這種情況下等同SET命令。 當key
存在時,什么也不做。SETNX
是”SET if Not eXists”的簡寫。
返回值
1
如果key被設置了0
如果key沒有被設置
例子
redis> SETNX mykey "Hello" (integer) 1 redis> SETNX mykey "World" (integer) 0 redis> GET mykey "Hello" redis>
mset/mget/msetnx
mset:同時設置一個或多個 key-value 對。
mget:獲取所有(一個或多個)給定 key 的值。
msetnx:同時設置一個或多個 key-value 對,當且僅當所有給定 key 都不存在。
getset(先get再set)
getset:將給定 key 的值設為 value ,並返回 key 的舊值(old value)。
簡單一句話,先get然后立即set