您的位置:首页 > 数据库 > Redis

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

2016-07-05 14:30 501 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis string