Redis初探02——Redis的String数据类型及操作

String类型是最简单的类型,一个key对应一个value,Stirng类型是二进制安全的。Redis的String可以包含任何数据,比如jpg图片或者序列化的对象。
操作:
1、set
设置key对应的值为String类型的value。
例:设置一个name=zhaojw的键值对,然后在get出name的值,再次设置name=zhaojw01,再get后发现值被覆盖:

127.0.0.1:6379> set name zhaojw
OK
127.0.0.1:6379> get name
"zhaojw"
127.0.0.1:6379> set name zhaojw01
OK
127.0.0.1:6379> get name
"zhaojw01"

2、setnx
设置对应的值为String类型的value,如果key已经存在,返回0,并且不更新,nx是not exist的意思。
例:设置name=zhaojw02,发现返回0,get后发现值未变,当设置age=26时,设置成功。

127.0.0.1:6379> setnx name zhaojw02
(integer) 0
127.0.0.1:6379> get name
"zhaojw01"
127.0.0.1:6379> setnx age 26
(integer) 1
127.0.0.1:6379> get age
"26"
127.0.0.1:6379> setnx age 28
(integer) 0
127.0.0.1:6379> get age
"26"

3、setex
设置key对应的值为String类型的value,并指定此键值对应的有效期。
例:添加一个haircolor=red的键值对,并指定有效期为10秒,10秒后再去get发现返回nil代表空:

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)
127.0.0.1:6379> setnx haircolor red
(integer) 1
127.0.0.1:6379> get haircolor
"red"

4、setrange
设置指定key的value的值的子字符串,setrange key 从第几个位置开始替换(字符串下标,从0开始) 替换内容,只替换与替换内容同等长度的内容,替换成功后返回替换后的字符串的长度。
例:将zhaojw的邮箱由163修改为126邮箱:

127.0.0.1:6379> set mail zhaojw_420@163.com
OK
127.0.0.1:6379> get mail
"zhaojw_420@163.com"
127.0.0.1:6379> setrange mail 11 126
(integer) 18
127.0.0.1:6379> get mail
"zhaojw_420@126.com"

5、mset
一次设置多个key的值,成功返回ok表示所有的值都设置成功,失败返回0表示没有任何值被设置成功。

127.0.0.1:6379> mset key1 zhaojw1 key2 zhaojw2 key3 zhaojw3
OK
127.0.0.1:6379> get key1
"zhaojw1"
127.0.0.1:6379> get key2
"zhaojw2"
127.0.0.1:6379> get key3
"zhaojw3"

6、msetnx
一次设置多个key的值,成功返回ok表示所有的值都设置成功,失败返回0表示没有任何值被设置成功,但是不会覆盖已存在的key,有一个key没有设置成功,都不会设置成功。

127.0.0.1:6379> msetnx key4 zhaojw4 key5 zhaojw5 key3 zhaojw
(integer) 0
127.0.0.1:6379> get key4
(nil)
127.0.0.1:6379> get key5
(nil)
127.0.0.1:6379> get key3
"zhaojw3"
127.0.0.1:6379> msetnx key4 zhaojw4 key5 zhaojw5 key6 zhaojw6
(integer) 1
127.0.0.1:6379> get key4
"zhaojw4"
127.0.0.1:6379> get key5
"zhaojw5"
127.0.0.1:6379> get key6
"zhaojw6"

7、get
获取key对应的String值,如果key不存在返回nil。
getset
设置key的值,并返回key的旧值:

127.0.0.1:6379> getset key6 zhaojw66
"zhaojw6"
127.0.0.1:6379> get key6
"zhaojw66"

8、getrange
获取key的value值的子字符串。 getrange key 从第几个位置开始 到第几个位置结束

127.0.0.1:6379> getrange mail 0 5
"zhaojw"
127.0.0.1:6379> getrange mail 0 10
"zhaojw_420@"

9、mget
一次获取多个key的值,如果对应的key不存在,则对应的返回nil;

127.0.0.1:6379> mget key1 key2 key3 key4 key5 key6
1) "zhaojw1"
2) "zhaojw2"
3) "zhaojw3"
4) "zhaojw4"
5) "zhaojw5"
6) "zhaojw66"
127.0.0.1:6379> mget key1 key2 key3 key4 key5 key6 key7
1) "zhaojw1"
2) "zhaojw2"
3) "zhaojw3"
4) "zhaojw4"
5) "zhaojw5"
6) "zhaojw66"
7) (nil)

10、incr
对key的值做++操作,并返回新的值,不存在的key,默认是0,然后相当于set这个key=0,后做++操作。

127.0.0.1:6379> get age
"26"
127.0.0.1:6379> incr age
(integer) 27
127.0.0.1:6379> incr age
(integer) 28
127.0.0.1:6379> incr age
(integer) 29
127.0.0.1:6379> incr age
(integer) 30
127.0.0.1:6379> get age
"30"
127.0.0.1:6379> incr agee
(integer) 1
127.0.0.1:6379> incr agee
(integer) 2
127.0.0.1:6379> get agee
"2"

11、incrby
同incr类似,加指定值,key不存在时候会设置key,并认为原来的value是0。正为加,负为减;

127.0.0.1:6379> get age
"30"
127.0.0.1:6379> incrby age 5
(integer) 35
127.0.0.1:6379> get age
"35"
127.0.0.1:6379> incrby ageee 10
(integer) 10
127.0.0.1:6379> get ageee
"10"
127.0.0.1:6379> incrby ageee -5
(integer) 5
127.0.0.1:6379> get ageee
"5"

12、decr
对key的值做–操作。同incr。相反的是正为减,负为加。

127.0.0.1:6379> get ageee
"5"
127.0.0.1:6379> decr ageee
(integer) 4
127.0.0.1:6379> decr ageee
(integer) 3
127.0.0.1:6379> decr ageee
(integer) 2
127.0.0.1:6379> get ageee
"2"

13、decrby
同incrby类似,减指定值。

127.0.0.1:6379> get ageee
"2"
127.0.0.1:6379> decrby ageee -8
(integer) 10
127.0.0.1:6379> get ageee
"10"
127.0.0.1:6379> decrby ageee 5
(integer) 5
127.0.0.1:6379> get ageee
"5"

14、append
给指定的key的字符串追加value。返回新字符串值的长度,append key value

127.0.0.1:6379> get name
"zhaojw"
127.0.0.1:6379> append name &zhanr
(integer) 12
127.0.0.1:6379> get name
"zhaojw&zhanr"

15、strlen
取指定key的value值的长度,strlen key

127.0.0.1:6379> strlen name
(integer) 12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值