技术开发 频道

Redis详解:strings数据类型及操作

  5、mset

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

  redis 127.0.0.1:6379> mset key1 HongWan1 key2 HongWan2

  OK

  redis
127.0.0.1:6379> get key1

  
"HongWan1"

  redis
127.0.0.1:6379> get key2

  
"HongWan2"

  redis
127.0.0.1:6379>

  6、msetnx

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

  redis 127.0.0.1:6379> get key1

  
"HongWan1"

  redis
127.0.0.1:6379> get key2

  
"HongWan2"

  redis
127.0.0.1:6379> msetnx key2 HongWan2_new key3 HongWan3

  (integer)
0

  redis
127.0.0.1:6379> get key2

  
"HongWan2"

  redis
127.0.0.1:6379> get key3

  (nil)

  可以看出如果这条命令返回0,那么里面操作都会回滚,都不会被执行。

  7、get

  获取key对应的string值,如果key不存在返回nil。

  例如我们获取一个库中存在的键name,可以很快得到它对应的value

  redis 127.0.0.1:6379> get name

  
"HongWan"

  redis
127.0.0.1:6379>

  我们获取一个库中不存在的键name1,那么它会返回一个nil以表时无此键值对

  redis 127.0.0.1:6379> get name1

  (nil)

  redis
127.0.0.1:6379>

  8、getset

  设置key的值,并返回key的旧值。

  redis 127.0.0.1:6379> get name

  
"HongWan"

  redis
127.0.0.1:6379> getset name HongWan_new

  
"HongWan"

  redis
127.0.0.1:6379> get name

  
"HongWan_new"

  redis
127.0.0.1:6379>

  接下来我们看一下如果key不存的时候会什么样儿?

  redis 127.0.0.1:6379> getset name1 aaa

  (nil)

  redis
127.0.0.1:6379>

  可见,如果key不存在,那么将返回nil

0
相关文章