Redis中set、setnx、setex区别

1、SET

	SET key value

含义:
将字符串值 value 关联到 key 。
如果 key 已经持有其他值, SET 就覆写旧值,无视类型。

2、SETEX

	SETEX key seconds value

含义:
将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。
如果 key 已经存在, SETEX 命令将覆写旧值。
返回值:
设置成功时返回 OK 。
当 seconds 参数不合法时,返回一个错误。

3、SETNX

	SETNX key value 

含义:
将 key 的值设为 value ,当且仅当 key 不存在。
若给定的 key 已经存在,则 SETNX 不做任何动作。
SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。
返回值:
设置成功,返回 1 。
设置失败,返回 0 。

4、GETSET

	GETSET key value 

含义:
将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
当 key 存在但不是字符串类型时,返回一个错误。
返回值:
返回给定 key 的旧值。
当 key 没有旧值时,也即是, key 不存在时,返回 null 。

备注:
1、expire命令可以设置超时,让现有的key获得超时时间

	Expire KEY_NAME TIME_IN_SECONDS

2、persist命令可以清除超时,让key变成一个永久的key

	PERSIST KEY_NAME
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐