Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

Redis SET命令

Redis 字符串(Strings)底层数据结构及所有相关命令 Redis 字符串(Strings)底层数据结构及所有相关命令


完整命令:

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"