標籤:
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:OKsetex 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:07>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:""(Null 字元串) getrange name 15 16:""(Null 字元串) 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 擷取長度
redis 操作string 的測試