您好,登錄后才能下訂單哦!
一、簡介:string: 字符串類型是Redis中最為基礎的數據存儲類型,它在Redis中是二進制安全的,這便意味著該類型可以接受任何格式的數據,如JPEG圖像數據或Json對象描述信息等。在Redis中字符串類型的Value最多可以容納的數據長度是512M.
二、應用場景:
實時記錄網站每天的的PV和UV
實時新浪微博每個賬號關注和被關注人數。
三、常用操作:
1、set方法:
set key value
將key的值設為value。
如果key已經存在,set就覆蓋舊值。
例如:redis> set color red
redis> get color
"red"
redis> set color black
redis> get color
"black"
2、setnx方法:
setnx key value
將key的值設為value,當且僅當key不存在。
若key已經存在,則SETNX不覆蓋舊值,即保持原值。
SETNX是”SET if Not eXists”(如果不存在,則SET)的簡寫。
例如:
redis> SETNX job "programmer"
(integer) 1 job設置成功
redis> SETNX job "code-farmer"
(integer) 0 job設置失敗
redis> GET job
"programmer" 沒有被覆蓋
3、setex方法:
SETEX key seconds value
將key的值設為value,并將key的生存時間設為seconds(以秒為單位)。
如果key 已經存在,SETEX命令將覆蓋舊值。
注意:這個命令類似于以下兩個命令:
SET key value
EXPIRE key seconds # 設置生存時間
不同之處是,SETEX是一個原子性(atomic)操作,關聯值和設置生存時間兩個動作會在同一時間內完成,該命令在Redis用作緩存時,非常實用。
4、setrange方法:
setrange key offset value
用value參數覆寫給定key所儲存的字符串值,從下標offset開始。
redis> set email haha@163.com
redis> get email
haha@163.com
redis> setrange email 5 google.com
redis> get email
haha@google.com
redis> setrange email 5 sina.cn
redis> get email
haha@sina.cncom
5、mset方法:
MSET key value [key value ...]
同時設置一個或多個key-value對。
當發現同名的key存在時,MSET會用新值覆蓋舊值,如果你不希望覆蓋同名key,請使用MSETNX命令。
MSET是一個原子性(atomic)操作,所有給定key都在同一時間內被設置,某些給定key被更新而另一些給定key沒有改變的情況,不可能發生。
redis> MSET date "2015.11.11" time "9.09a.m." weather "sunny" OK
6、append方法:
APPEND key value
如果key已經存在并且是一個字符串,APPEND命令將value追加到key原來的值之后。
如果key不存在,APPEND就簡單地將給定key設為value,就像執行SET key value一樣。
# 情況1:對不存在的key執行APPEND redis> EXISTS myphone # 確保myphone不存在 (integer) 0 redis> APPEND myphone "mi" # 對不存在的key進行APPEND,等同于SET myphone "mi" (integer) 5 # 字符長度 # 情況2:對字符串進行APPEND redis> APPEND myphone " - 1110" (integer) 12 # 長度從5個字符增加到12個字符 redis> GET myphone # 查看整個字符串 "mi - 1110"
7、get方法:
get key
返回key所關聯的字符串值。
如果key不存在則返回特殊值nil。
假如key儲存的值不是字符串類型,返回一個錯誤,因為GET只能用于處理字符串值。
redis> GET animate (nil) redis> SET animate "anohana" OK redis> GET animate "anohana"
8、mget方法:
MGET key [key ...]
返回所有(一個或多個)給定key的值。
如果某個指定key不存在,那么返回特殊值nil。因此,該命令永不失敗。
9、getrange方法:
GETRANGE key start end
返回key中字符串值的子字符串,字符串的截取范圍由start和end兩個偏移量決定(包括start和end在內)。
負數偏移量表示從字符串最后開始計數,-1表示最后一個字符,-2表示倒數第二個,以此類推。
GETRANGE通過保證子字符串的值域(range)不超過實際字符串的值域來處理超出范圍的值域請求。
備注:在<=2.0的版本里,GETRANGE被叫作SUBSTR。
redis> SET greeting "hello, my friend" OK redis> GETRANGE greeting 0 4 # 返回索引0-4的字符,包括4。 "hello" redis> GETRANGE greeting -1 -5 # 不支持回繞操作,必須從前往后截取 "" redis> GETRANGE greeting -3 -1 # 負數索引 "end" redis> GETRANGE greeting 0 -1 # 從第一個到最后一個 "hello, my friend" redis> GETRANGE greeting 0 1008611 # 值域范圍不超過實際字符串,超過部分自動被符略"hello, my friend" GETSET key value 將給定key的值設為value,并返回key的舊值。 當key存在但不是字符串類型時,返回一個錯誤。 redis> GETSET mail xxx@google.com # 因為mail之前不存在,沒有舊值,返回nil (nil) redis> GETSET mail xxx@yahoo.com # mail被更新,舊值被返回 "xxx@google.com" strlen key 返回key所儲存的字符串值的長度。 當key儲存的不是字符串值時,返回一個錯誤。 當 key不存在時,返回0。
redis> SET mykey "Hello world" OK redis> STRLEN mykey (integer) 11 redis> STRLEN nonexisting # 不存在的key長度視為0 (integer) 0
12、incr方法:
INCR key
將key中儲存的數字值+1。
如果key不存在,以0為key的初始值,然后執行INCR操作。
如果值包含錯誤的類型,或字符串類型的值不能表示為數字,那么返回一個錯誤。
本操作的值限制在64位(bit)有符號數字表示之內。
redis> SET page_view 20 OK redis> INCR page_view (integer) 21 redis> GET page_view # 數字值在Redis中以字符串的形式保存 "21"
13、incrby方法:
INCRBY key increment
將key所儲存的值加上增量increment。
如果key不存在,以0為key的初始值,然后執行INCRBY命令。
如果值包含錯誤的類型,或字符串類型的值不能表示為數字,那么返回一個錯誤。
本操作的值限制在64位(bit)有符號數字表示之內。
關于更多遞增(increment)/遞減(decrement)操作信息,參見INCR命令。
# 情況1:key存在且是數字值 redis> SET rank 50 # 設置rank為50 OK redis> INCRBY rank 20 # 給rank加上20 (integer) 70 redis> GET rank "70" redis> INCRBY rank -20 # 給rank加上-20 (integer) 50 # 情況2:key不存在 redis> EXISTS counter (integer) 0 redis> INCRBY counter 30 (integer) 30 redis> GET counter "30" # 情況3:key不是數字值 redis> SET book "long long ago..." OK redis> INCRBY book 200 (error) ERR value is not an integer or out of range key中儲存的數字值-1。 如果key不存在,以0為key的初始值,然后執行DECR操作。 如果值包含錯誤的類型,或字符串類型的值不能表示為數字,那么返回一個錯誤。 本操作的值限制在64位(bit)有符號數字表示之內。 關于更多遞增(increment)/遞減(decrement)操作信息,參見INCR命令。
情況1:對存在的數字值key進行DECR redis> SET failure_times 10 OK redis> DECR failure_times (integer) 9 # 情況2:對不存在的key值進行DECR redis> EXISTS count (integer) 0 redis> DECR count (integer) -1 # 情況3:對存在但不是數值的key進行DECR redis> SET company YOUR_CODE_SUCKS.LLC OK redis> DECR company (error) ERR value is not an integer or out of range
15、decrby方法:
DECRBY key decrement
將key所儲存的值減去減量decrement。
如果key不存在,以0為key的初始值,然后執行DECRBY操作。
如果值包含錯誤的類型,或字符串類型的值不能表示為數字,那么返回一個錯誤。
本操作的值限制在64位(bit)有符號數字表示之內。
關于更多遞增(increment)/遞減(decrement)操作信息,參見INCR命令
# 情況1:對存在的數值key進行DECRBY redis> SET count 100 OK redis> DECRBY count 20 (integer) 80 # 情況2:對不存在的key進行DECRBY redis> EXISTS pages (integer) 0 redis> DECRBY pages 10 (integer) -10 redis> DECRBY pages -20 (integer) 10
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。