- 2021-02-23更新:
SET
命令新增EXAT
、PXAT
以及GET
参数;新增GETDEL
、GETEX
命令。
Redis是一个当前非常流行的开源内存数据库,它支持包括字符串(String)、列表(List)、哈希集合(Hash)、集合(Set)、有序集合(Sorted Set)五种数据类型。在接下来一系列文章中,将在Redis支持的数据类型的基础上,介绍相关的操作命令。作为开篇,本文将先介绍字符串类型的操作命令。
本文中除特别注明的命令外,都只可被用于操作字符串类型的键值对。
SET
SET
命令为指定名称的键设置字符串类型的值,若键已存在则覆盖旧值(未指定特定参数的情况下)。
SET key value [EX seconds|PX milliseconds] [EXAT timestamp|PXAT milliseconds-timestamp] [NX|XX] [KEEPTTL]
可选参数
SET
命令有EX
、PX
、NX
、XX
以及KEEPTTL
五个可选参数,其中KEEPTTL
为6.0版本添加的可选参数,其它为2.6.12版本添加的可选参数。
EX seconds
:以秒为单位设置过期时间PX milliseconds
:以毫秒为单位设置过期时间EXAT timestamp
:设置以秒为单位的UNIX时间戳所对应的时间为过期时间PXAT milliseconds-timestamp
:设置以毫秒为单位的UNIX时间戳所对应的时间为过期时间NX
:键不存在的时候设置键值XX
:键存在的时候设置键值KEEPTTL
:保留设置前指定键的生存时间GET
:返回指定键原本的值,若键不存在时返回nil
SET
命令使用EX
、PX
、NX
参数,其效果等同于SETEX
、PSETEX
、SETNX
命令。根据官方文档的描述,未来版本中SETEX
、PSETEX
、SETNX
命令可能会被淘汰。
EXAT
、PXAT
以及GET
为Redis 6.2新增的可选参数。
返回值
设置成功则返回OK
;返回nil
为未执行SET
命令,如不满足NX
、XX
条件等。
若使用GET
参数,则返回该键原来的值,或在键不存在时返回nil
。
示例
设置greeting
键的值,并随后设置新值:
# 设置键名greeting的值为hello world
redis> SET greeting "hello world"
OK
# 获取greeting键的值
redis> GET greeting
"hello world"
# 为greeting键设置新值
redis> SET greeting "hello redis"
OK
redis> GET greeting
"hello redis"
使用EX
参数设置过期时间,并使用NX
参数在键不存在的时候设置键值:
# 为greeting键设置10秒的过期时间
redis> SET greeting "hello world" EX 10
OK
#