redis 操做string 的測試

1>set 
  set name zhangsan :OK
  get name: zhangsan
  set name lisi:OK
  get name: lisi
 
2> setnx 若是存在,返回0,不覆蓋原值
  setnx name lisi :0
  get name: lisi
 
  setnx age 15:1
  get age: 15
 
3> setex 若是不存在,則新建;若是存在,則覆蓋( 有新的參數 有效時間) 
  set age 5 15:OK (不管如何都會返回OK)
  get age: 15 (5S 以後消失)
 
 
4>setrange 設置子串
  setrange name 1 a :4(輸出name的長度)
  get name : lasi
  setrange name 1 bcdef:6(輸出name的長度)
  get name :lbcdef
  setrange name 6 t:7(由於長度爲6在角標6的位置添加"t"字符,會拉長字符串)
  get name : lbcdeft
  setrange name 9 ss:11(從角標9開始,添加"ss"字符串,長度變爲11)
  get name:lbcdeft\x00\x00\x00ss (空白處由"\x00"填充)
 
  即,若是要替換的字符串不夠長,則替換響應長度的字符串,若是過長,則會日後拼接
  第一次替換了i->a 長度未變
  第二次替換了asi->bcdef 長度增長
 
5> mset 批量設置
     msetnx name zhangsan name1 lisi:OK(不管存在與否,都會返回OK,即不管存在與否都會賦值進去)
 
使用setex清除現有字段
setex name 1 1:OK
setex age 1 1:OK
 
 
6>msetnx 一次設置多個key的值,成功則返回OK表示全部的值都設置了,失敗則返回0表示沒有任何值被設置,原值不會被覆蓋
  msetnx name zhangsan name1 lisi:OK
  get name:zhangsan
  get name1:lisi
 
  msetnx name zhangsan1 name1 lisi1:0
7>get 獲取字符串內容
 
8>getset 既獲取又設置
     getset zhangsan1:zhangsan(返回被替換掉的內容)
 
 
9>getrange 獲取子串 ex:getrange name 0 5
  getrange name 0 1 :zh
  getrange name 0 -1:zhangsan1(-1表示獲取到字符串尾部)
  getrange name 1 -1:hangsan1
  getrange name 0 15:zhangsan1(15>長度9,也會選擇全部內容,並不會拼接空格或者什麼)
  getrange name 0 8 :zhangsan1(長度9,選擇0-8,會選擇全部內容,角標從0開始)
  getrange name 15 -1:""(空字符串)
  getrange name 15 16:""(空字符串)
 
 
 
10>mget 一次獲取多個key的value 若是key不存在則返回 nil
  get name name1:
    1) zhangsan1 
    2) lisi
  get name name2:
    1)zhangsan1
    2)nil
 
 
11>incr 對value進行++操做
  incr name:     <error>(如今name=zhangsan1 並不是數字)
  set age 20:OK
  get age :20
  incr age:21(返回+1後的值)
  get age:21
 
 
12>incrby 對value進行+x操做
  incrby age 5:26(返回+x後的值)
  get age:26
   
13>decr 對value進行--操做
14>decrby 對value進行-x操做
 
 
15>append 追加
  append name lisi:13 (9+4=13,返回追加後的字符串的長度)
  get name:zhangsan1lisi
 
16>strlen 獲取長度
相關文章
相關標籤/搜索