面试题答案
一键面试Redis 中 STORE 选项作用
在 Redis 中,并不存在 STORE
选项。你可能想问的是 SET
命令中的 NX
(SET key value NX
)或 XX
(SET key value XX
)选项。
- NX(Not eXists):表示只有当键不存在时,才会设置键值对。如果键已经存在,
SET key value NX
操作将不执行任何操作,返回nil
。这一选项在实现分布式锁等场景中有重要作用,确保在并发环境下只有一个客户端能成功设置某个键值,避免重复设置。 - XX(eXists eXclusively):表示只有当键已经存在时,才会设置键值对。如果键不存在,
SET key value XX
操作将不执行任何操作,返回nil
。常用于更新已有键的值,且需要确保键存在的场景。
使用 SET 命令结合相关选项时数据更新一般流程(以 NX 为例)
- 客户端发送命令:客户端向 Redis 服务器发送
SET key value NX
命令。 - 服务器检查:Redis 服务器接收到命令后,检查指定的键是否存在。
- 执行设置或返回结果:
- 如果键不存在,Redis 服务器设置键值对,并返回
OK
表示设置成功。 - 如果键已存在,服务器不执行设置操作,返回
nil
给客户端,表示设置失败。
- 如果键不存在,Redis 服务器设置键值对,并返回
使用 SET 命令结合 XX 选项时数据更新一般流程
- 客户端发送命令:客户端向 Redis 服务器发送
SET key value XX
命令。 - 服务器检查:Redis 服务器接收到命令后,检查指定的键是否存在。
- 执行设置或返回结果:
- 如果键存在,Redis 服务器更新键对应的值为新值,并返回
OK
表示设置成功。 - 如果键不存在,服务器不执行设置操作,返回
nil
给客户端,表示设置失败。
- 如果键存在,Redis 服务器更新键对应的值为新值,并返回