String类型及操作
String是最简单的类型,一个Key对应一个Value,string类型是二进制安全的。Redis的String可以包含任何数据,比如jpg图片或者序列化的对象。
Set
设置Key对应的值为String类型的Value
127.0.0.1:6379> set name ysy
OK
(0.53s)
127.0.0.1:6379> get name
"ysy"
127.0.0.1:6379> set name yyy
OK
127.0.0.1:6379> get name
"yyy"
上面的例子可以看出,一个键对应一个值。如果重复设置同一个键,则会覆盖。
Setnx
设置Key对应的值为string类型的value,如果key已经存在,返回0,nx是not exist的意思
127.0.0.1:6379> setnx name sss
(integer) 0
27.0.0.1:6379> setnx age 20
(integer) 1
127.0.0.1:6379> get age
"20"
127.0.0.1:6379> setnx age 40
(integer) 0
127.0.0.1:6379> get age
"20"
Setex
设置Key对应的值为string类型的value,并指定此键值对应的有效期。
例如将haircolor的值设置为red,并且有效期为10s
127.0.0.1:6379> setex haircolor 10 red
OK
127.0.0.1:6379> get haircolor
"red"
127.0.0.1:6379> get haircolor
(nil)
其中(nil)表示空
Setrange
设置指定key的value值的子字符串
例如:我们希望将lijie的126邮箱换位gmail邮箱
127.0.0.1:6379> set name lijie@126.com
OK
127.0.0.1:6379> get name
"lijie@126.com"
127.0.0.1:6379> setrange name 6 gmail.com
(integer) 15
127.0.0.1:6379> get name
"lijie@gmail.com"
从第6个字符开始替换,替换成gmail.com
注:替换完后,后面多余的部分保持不变
127.0.0.1:6379> set name 12345678
OK
127.0.0.1:6379> get name
"12345678"
127.0.0.1:6379> setrange name 3 abc
(integer) 8
127.0.0.1:6379> get name
"123abc78"
mset
一次设置多个key的值,成功返回ok表示所有值都设置了,失败返回0表示没有任何值被设置。
例如:
mset key1 ysy1 key2 ysy2
OK
127.0.0.1:6379> get key1
"ysy1"
127.0.0.1:6379> get key2
"ysy2"
msetnx
一次设置多个key的值,成功返回ok表示所有值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key。
注:只要有一个失败,则都不会赋值。
127.0.0.1:6379> set key2 ysy
OK
127.0.0.1:6379> msetnx key6 666 key2 123
(integer) 0
127.0.0.1:6379> get key6
(nil)
127.0.0.1:6379> get key2
"ysy"
get
获取key对应的string值,如果key不存在返回nil
getset
设置key的值,并返回key的旧值。
127.0.0.1:6379> set key1 111
OK
127.0.0.1:6379> getset key1 222
"111"
getrange
获取key的value值的子字符串。
例如:
127.0.0.1:6379> set key1 123456@qq.com
OK
127.0.0.1:6379> getrange key1 0 4
"12345"
注: 0 4 是从下标为0的到为4的
mget
一次获取多个key值,如果key不存在则对应的返回nil
127.0.0.1:6379> mget key1 key2 key3 key4 key5 key6 key7
1) "123456@qq.com"
2) "ysy"
3) "123"
4) (nil)
5) "ysy5"
6) (nil)
7) (nil)
incr
对key的值做加加操作,并返回新的值
incrby
同incr类似,加指定值,key不存在的时候设置key,并认为原来的value为0
127.0.0.1:6379> set key1 20
OK
127.0.0.1:6379> incr key1
(integer) 21
127.0.0.1:6379> get key1
"21"
127.0.0.1:6379> incr key7
(integer) 1
127.0.0.1:6379> incr key7
(integer) 2
127.0.0.1:6379> incr key7
(integer) 3
127.0.0.1:6379> get key7
"3"
127.0.0.1:6379> incrby key7 5
(integer) 8
127.0.0.1:6379> incrby key7 5
(integer) 13
127.0.0.1:6379> incrby key7 -5
(integer) 8
后面的数设置成正值为加,设置成负值为减
decr
对key的值做减减操作
decrby
同decr类似,见指定值
127.0.0.1:6379> set key1 20
OK
127.0.0.1:6379> decr key1
(integer) 19
127.0.0.1:6379> decr key1
(integer) 18
127.0.0.1:6379> decr key1
(integer) 17
127.0.0.1:6379> decrby key1 3
(integer) 14
127.0.0.1:6379> decrby key1 -3
(integer) 17
**注:如果decrby 后面的数为负值,即为减去一个负值,就相当于加上那个数的绝对值
**
append
给指定的字符串追加value,返回新的字符串值的长度。
127.0.0.1:6379> set name ysy
OK
127.0.0.1:6379> append name @qq.com
(integer) 10
127.0.0.1:6379> get name
"ysy@qq.com"
strlen
取指定key的value值的长度。
127.0.0.1:6379> set name 123456
OK
127.0.0.1:6379> strlen name
(integer) 6