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 获取长度