Redis String類型資料常用的16條命令總結

來源:互聯網
上載者:User

Redis String類型資料常用的16條命令總結


描述:String 類型是最簡單的類型,一個Key對應一個Value,String類型是二進位安全的。Redis的String可以包含任何資料,比如jpg圖片或序列化對象。         常用方法:
      1, set方法:
set  <key>  <value>       設定key的值為value
(1)對不存在的key使用set:

redis 127.0.0.1:6379> set name 'zhangsan'OKredis 127.0.0.1:6379> get name"zhangsan"
(2)對已存在的key使用set,更換key的值:
redis 127.0.0.1:6379> set name 'lisi'OKredis 127.0.0.1:6379> get name"lisi"
2,setnx 方法:

setnx  <key>   <value>     當key不存在時,設定key的值為value,設定成功,返回1,設定失敗,返回0.

redis 127.0.0.1:6379> setnx name 'wangwu'(integer) 0redis 127.0.0.1:6379> get name"lisi"redis 127.0.0.1:6379> setnx name2 'wangwu'(integer) 1redis 127.0.0.1:6379> get name2"wangwu"
3,setex 方法:
setex  <key>  <seconds>  <value>    設定key的值為value,到期時間為seconds(單位為秒).如果key已經存在,
則會覆蓋其值。到期之後,返回的是為nil.
redis 127.0.0.1:6379> setex name 3 'zhangsan'OKredis 127.0.0.1:6379> get name"zhangsan"redis 127.0.0.1:6379> get name(nil)redis 127.0.0.1:6379> setex name 30 'zhangsan'OKredis 127.0.0.1:6379> get name"zhangsan"redis 127.0.0.1:6379> setex name 30 'lisi'OKredis 127.0.0.1:6379> get name"lisi"
4,setrange方法:
setrange  <key>  <offset>  <value>   用 value 參數覆蓋給定 key 所儲存的字串值,下標從0開始,位移量從 offset 開始。如果key不存在,則當做空白字串處理。此命令會確保字串足夠長以便將 value 設定在指定的位移量上,如果給定 key 原來儲存的字串長度比位移量小(比如字串只有 5 個字元長,但你設定的 offset 是 10 ),那麼原字元和位移量之間的空白將用零位元組(zerobytes, "\x00" )來填充。注意你能使用的最大位移量是 2^29-1(536870911) ,因為 Redis 字串的大小被限制在 512 兆(megabytes)以內。如果你需要使用比這更大的空間,你可以使用多個 key 。
redis 127.0.0.1:6379> set name 'zhangsan'OKredis 127.0.0.1:6379> get name"zhangsan"redis 127.0.0.1:6379> setrange name 5 '_si'(integer) 8redis 127.0.0.1:6379> get name"zhang_si"redis 127.0.0.1:6379> get name3(nil)redis 127.0.0.1:6379> setrange name3 4 'lisi'(integer) 8redis 127.0.0.1:6379> get name3"\x00\x00\x00\x00lisi"redis 127.0.0.1:6379>

5,mset方法:
mset  <key>  <value> [<key>   <value> ...]   同時設定多個key-value對,如果key已經存在,則會覆蓋以前的值。
redis 127.0.0.1:6379> get name"zhang_si"redis 127.0.0.1:6379> mset name 'zhangsan' name2 'lisi' name3 'wangwu'OKredis 127.0.0.1:6379> get name"zhangsan"redis 127.0.0.1:6379> get name2"lisi"redis 127.0.0.1:6379> get name3"wangwu"redis 127.0.0.1:6379>

6,msetnx方法:
msetnx  <key>  <value> [<key>   <value> ...]   類似與mset方法,同時設定多個key-value對,若且唯若所給定的key都不存在時。如果操作成功,返回1,失敗返回0.
redis 127.0.0.1:6379> set age 12OKredis 127.0.0.1:6379> get age"12"redis 127.0.0.1:6379> msetnx age 14 age1 34 age2 55(integer) 0redis 127.0.0.1:6379> get age1(nil)redis 127.0.0.1:6379> get age"12"redis 127.0.0.1:6379> msetnx key1 'hello' key2 'word'(integer) 1redis 127.0.0.1:6379> get key1"hello"redis 127.0.0.1:6379> get key2"word"redis 127.0.0.1:6379>

7,append方法:
append <key> <value> 將value追加到原來的key值之後,如果key本不存在,則預設建立一個key-value對。操作成功返回1,失敗返回0.
redis 127.0.0.1:6379> set name 'zhangshan'OKredis 127.0.0.1:6379> get name"zhangshan"redis 127.0.0.1:6379> append name ' is 12.'(integer) 16redis 127.0.0.1:6379> get name"zhangshan is 12."redis 127.0.0.1:6379> get addr(nil)redis 127.0.0.1:6379> append addr '32 env.'(integer) 7redis 127.0.0.1:6379> get addr"32 env."redis 127.0.0.1:6379>

8 ,get 方法:
get <key> 取出 key的值。
9, mget 方法:
mget <key> [<key>...] 取出多個key的值。如果給定的 key 裡面,有某個 key 不存在,那麼這個 key 返回特殊值 nil。
redis 127.0.0.1:6379> mget name name1  name2 name31) "zhangshan is 12."2) (nil)3) "lisi"4) "wangwu"redis 127.0.0.1:6379>

10, getrange 方法:
getrange <key> <start> <end> 擷取key對應值的子字串,從位移量start到end之間的串(包含start和end),value最左邊的一個字元的索引為0以此類推,最後一個字元的索引為字串的總長度減一,反過來類似。這與Python中的切片操作及其類似。如,字串"zhangsan"對應的正向下標如下圖中的下標一所示,反向下標如下圖中的下標二所示。

下標一: 0 1 2 3 4 5 6 7
  z h a n g s a n
下標二: 0 -7 -6 -5 -4 -3 -2 -1
redis 127.0.0.1:6379> set name 'zhangsan'OKredis 127.0.0.1:6379> getrange name 0 4"zhang"redis 127.0.0.1:6379> getrange name 0 20"zhangsan"redis 127.0.0.1:6379> getrange name 0 -1"zhangsan"redis 127.0.0.1:6379>

11,getset方法:
getset <key> <value> 設定key的值為value,並返回key的舊值,當key的舊值不存在時,返回nil。
redis 127.0.0.1:6379> get name"zhangsan"redis 127.0.0.1:6379> getset name 'lisi'"zhangsan"redis 127.0.0.1:6379> get name"lisi"redis 127.0.0.1:6379> get code(nil)redis 127.0.0.1:6379> getset code 'hello'(nil)redis 127.0.0.1:6379> get code"hello"redis 127.0.0.1:6379>

12, strlen 方法:
strlen <key> 返回key的長度,如果key的值不存在時,返回0.
redis 127.0.0.1:6379> get name"lisi"redis 127.0.0.1:6379> strlen  name(integer) 4redis 127.0.0.1:6379> get key0(nil)redis 127.0.0.1:6379> strlen key0(integer) 0

13,incr 方法:
incr <key> 將key的值加1。如果key的值不存在,則預設設定key的值為0,調用一次,增加一次,如果key的值不是整數類型,則返回一個錯誤。
redis 127.0.0.1:6379> get name"lisi"redis 127.0.0.1:6379> incr name(error) ERR value is not an integer or out of rangeredis 127.0.0.1:6379> set name 5OKredis 127.0.0.1:6379> incr name(integer) 6redis 127.0.0.1:6379> get name"6"redis 127.0.0.1:6379> get key0(nil)redis 127.0.0.1:6379> incr key0(integer) 1redis 127.0.0.1:6379> incr key0(integer) 2redis 127.0.0.1:6379> get key0"2"redis 127.0.0.1:6379>

14, decr 方法:
decr <key> 類似與incr方法,將key的值減1。如果key的值不存在,則預設設定key的值為0,調用一次,減一次,如果key的值不是整數類型,則返回一個錯誤。
redis 127.0.0.1:6379> get name"6"redis 127.0.0.1:6379> decr name(integer) 5redis 127.0.0.1:6379> decr name(integer) 4redis 127.0.0.1:6379> decr key9(integer) -1redis 127.0.0.1:6379>

15,incrby 方法:
incrby<key> <increment> 類似與decr方法,將key的值增加增量increment。同理,錯誤的類型任然返回錯誤。如果key值不存在,則預設為0後進行操作。
redis 127.0.0.1:6379> set count 20OKredis 127.0.0.1:6379> get count"20"redis 127.0.0.1:6379> incrby count 40(integer) 60redis 127.0.0.1:6379> get count"60"redis 127.0.0.1:6379> get count1(nil)redis 127.0.0.1:6379> incrby count1 30(integer) 30redis 127.0.0.1:6379> get count1"30"
16,decrby 方法:
decrby <key> <decrement> 類似與decr方法,將key的值減去增量decrement。同理,錯誤的類型任然返回錯誤。如果key值不存在,則預設為0後進行操作。
redis 127.0.0.1:6379> set count 20OKredis 127.0.0.1:6379> decrby count 4(integer) 16redis 127.0.0.1:6379> get count2(nil)redis 127.0.0.1:6379> decrby count2 10(integer) -10redis 127.0.0.1:6379>


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.