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 获取长度
posted @ 2016-04-15 19:15  coding烫烫烫烫烫  阅读(165)  评论(0编辑  收藏  举报