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

来源:互联网 发布:ieee1459功率算法 编辑:程序博客网 时间:2024/05/16 17:31

1.简述

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

2.命令表

这里写图片描述

3.操作实例

①set命令,设置key的value

redis 127.0.0.1:6379> set name hzsunpengOKredis 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 hangzhouOKredis 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 OKredis 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.comOKredis 127.0.0.1:6379> setrange email 10 gail.com(integer) 18redis 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) 18redis 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) 0redis 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) 1redis 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) 27redis 127.0.0.1:6379> incr age(integer) 28redis 127.0.0.1:6379> get age"28"redis 127.0.0.1:6379> incrby age 10(integer) 38redis 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) 17redis 127.0.0.1:6379> get address"hangzhou_binjiang"

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

redis 127.0.0.1:6379> strlen name(integer) 9redis 127.0.0.1:6379> strlen address(integer) 17
1 0
原创粉丝点击