Redis數據類型之Redis字符串(String)


單值單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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM