Redis学习笔记03--String数据类型

1.简述

String类型是Redis最简单的数据类型,一个key对应一个value,它在Redis中是二进制安全的,这意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

2.命令表

这里写图片描述

3.操作实例

①set命令,设置key的value

redis 127.0.0.1:6379> set name hzsunpeng
OK
redis 127.0.0.1:6379> get name
"hzsunpeng"

②setnx,如果key已经存在,则不能设置新value,否则设置

redis 127.0.0.1:6379> setnx name hzsunpeng_new
(integer) 0

③批量设置,mset,一次可以设置多个key,全部成功返回OK,否则返回0

redis 127.0.0.1:6379> mset name hzsunpeng age 25 sex 1 address hangzhou
OK
redis 127.0.0.1:6379> keys *
1) "sex"
2) "age"
3) "name"
4) "address"
redis 127.0.0.1:6379> get sex
"1"
redis 127.0.0.1:6379> get address
"hangzhou"
redis 127.0.0.1:6379> get name
"hzsunpeng"
redis 127.0.0.1:6379> get age
"25"

④setex,指定key-value的有效期,单位是秒

redis 127.0.0.1:6379> setex color 10 red 
OK
redis 127.0.0.1:6379> get color
"red"
redis 127.0.0.1:6379> get color
"red"
redis 127.0.0.1:6379> get color
"red"
redis 127.0.0.1:6379> get color
"red"
redis 127.0.0.1:6379> get color
"red"
redis 127.0.0.1:6379> get color
(nil)

最后由于过期而返回nil
⑤setrange命令,设置指定key的value值的子字符串。下例,将163邮箱替换为谷歌邮箱,第一个参数是要设置的key,第二个参数是从哪里开始设置,第三个参数是要设置(修改)的内容,返回修改后的key的字符串

redis 127.0.0.1:6379> set email hzsunpeng@163.com
OK
redis 127.0.0.1:6379> setrange email 10 gail.com
(integer) 18
redis 127.0.0.1:6379> get email
"hzsunpeng@gail.com"

注意:替换后的字符串没有原来字符串长,那么原字符串将拼接,例如:

redis 127.0.0.1:6379> get email
"hzsunpeng@gail.com"
redis 127.0.0.1:6379> setrange email 10 dlut
(integer) 18
redis 127.0.0.1:6379> get email
"hzsunpeng@dlut.com"

原来的.com会保留
⑥msetnx,批量设置多个key,所有key设置成功返回1,没有任何key被设置则返回0,但是不会覆盖已经存在的key,只要有一个key已经存在,即设置不成功,那么所有的便不能设置成功,刚才name email sex age address全都已经设置,现在:

redis 127.0.0.1:6379> msetnx job java_engineer corp netease age 26
(integer) 0
redis 127.0.0.1:6379> get corp
(nil)
redis 127.0.0.1:6379> get job
(nil)

因为age已经存在,所以所有key全部没有设置成功。

redis 127.0.0.1:6379> msetnx job java_engineer corp netease
(integer) 1
redis 127.0.0.1:6379> get job
"java_engineer"
redis 127.0.0.1:6379> get corp
"netease"

现在则可以批量设置成功。
⑦getset,设置一个key的value,并且返回key的旧value

redis 127.0.0.1:6379> getset age 26
"25"

⑧getrange 获取子字符串

redis 127.0.0.1:6379> get email
"hzsunpeng@dlut.com"
redis 127.0.0.1:6379> getrange email 0 8
"hzsunpeng"

⑨mget批量获取

redis 127.0.0.1:6379> mget name age sex address job corp 
1) "hzsunpeng"
2) "26"
3) "1"
4) "hangzhou"
5) "java_engineer"
6) "netease"

⑩incr和incrby

redis 127.0.0.1:6379> get age
"26"
redis 127.0.0.1:6379> incr age
(integer) 27
redis 127.0.0.1:6379> incr age
(integer) 28

redis 127.0.0.1:6379> get age
"28"
redis 127.0.0.1:6379> incrby age 10
(integer) 38
redis 127.0.0.1:6379> get age
"38"

若incrby的key不存在,则设置初始值为0
decr和decrby和上述类似,不再赘述,只是减操作。
⑪append,追加,返回新字符串的长度

redis 127.0.0.1:6379> get address
"hangzhou"
redis 127.0.0.1:6379> append address _binjiang
(integer) 17
redis 127.0.0.1:6379> get address
"hangzhou_binjiang"

⑫strlen,返回字符串value的长度

redis 127.0.0.1:6379> strlen name
(integer) 9
redis 127.0.0.1:6379> strlen address
(integer) 17
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值