完整命令:
SET key value [EX seconds|PX milliseconds] [NX|XX]
可用版本:>=1.0.0
时间复杂度:O(1)
将字符串值value关联到key。
如果key已经持有其他值,SET就覆写旧值,且无视类型。
对于某个原本带有生存时间(TTL)的键来说,当SET命令成功在这个键上执行时,这个键原有的TTL将被清除。
可选参数
从Redis 2.6.12版本开始,SET命令的行为可以通过一系列参数来修改:
- EX seconds:设置键的过期时间为seconds秒。SET key value EX seconds效果等同于SETEX key seconds value。
- PX milliseconds:设置键的过期时间为milliseconds毫秒。SET key value PX milliseconds效果等同于PSETEX key milliseconds value。
- NX:只在键不存在时,才对键进行设置操作。SET key value NX效果等同于SETNX key value。
- XX:只在键已经存在时,才对键进行设置操作。
注意:因为SET命令可以通过参数来实现和SETNX、SETEX和PSETEX三个命令的效果,所以将来的Redis版本可能会废弃并最终移除SETNX、SETEX和PSETEX这三个命令。
如果EX和PX同时写,则以后面的有效期为准。
返回值
在Redis 2.6.12版本以前,SET命令总是返回OK。
从Redis 2.6.12版本开始,SET在设置操作成功完成时,才返回OK。
如果设置了NX或者XX,但因为条件没达到而造成设置操作未执行,那么命令返回空批量回复(NULL Bulk Reply)。
示例
redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"