Redis GETSET命令的用法
Redis GETSET 命令的基本语法如下:
返回值:返回 key 的旧值。当 key 没有旧值时,返回 nil。
实例如下:
接下来看一看,如果 key 不存在,那么使用 GETSET 会返回什么值?
GETSET 可以和 INCR 组合使用,实现一个有原子性复位操作功能的计数器(counter)。
可以用 GETSET mycount 0 来实现这一目标。
GETSET key value
GETSET 用于将 key 的值设为 value,并返回 key 的旧值。返回值:返回 key 的旧值。当 key 没有旧值时,返回 nil。
实例如下:
127.0.0.1:6379> SET name xinping OK 127.0.0.1:6379> GET name "xinping" # name对应的值被更新,旧值被返回 127.0.0.1:6379> GETSET name xinping_new "xinping" 127.0.0.1:6379> GET name "xinping_new"
接下来看一看,如果 key 不存在,那么使用 GETSET 会返回什么值?
127.0.0.1:6379> EXISTS name1 (integer) 0 127.0.0.1:6379> GETSET name1 "xinping" (nil) 127.0.0.1:6379> GET name1 "xinping"因为 name1 之前不存在,没有旧值,所以返回 nil。
GETSET 可以和 INCR 组合使用,实现一个有原子性复位操作功能的计数器(counter)。
可以用 GETSET mycount 0 来实现这一目标。
127.0.0.1:6379> INCR mycount (integer) 1 # 一个原子操作内完成GET mycount和GETSET mycount 0 127.0.0.1:6379> GETSET mycount 0 "1" 127.0.0.1:6379> GET mycount "0"