Redis setnx

SETNX

SETNX key value

将 key 的值设为 value ,当且仅当 key 不存在。

若给定的 key 已经存在,则 SETNX 不做任何动作。

SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。

可用版本:
>= 1.0.0
时间复杂度:
O(1)
返回值:
设置成功,返回  1 。
设置失败,返回  0 。
redis> EXISTS job                # job 不存在
(integer) 0

redis> SETNX job "programmer"    # job 设置成功
(integer) 1

redis> SETNX job "code-farmer"   # 尝试覆盖 job ,失败
(integer) 0

redis> GET job                   # 没有被覆盖
"programmer"
Redis中,SETNX是一个用于设置键-值对的命令,仅在键不存在时才设置该键。SETNX是 "Set if Not Exists"(如果不存在则设置)的缩写。 SETNX命令在实现分布式锁的场景中非常常用。为了解决多个客户端同时获取锁的竞争问题,分布式锁的实现需要使用原子性的操作,确保获取锁和设置锁的操作是一个不可分割的操作。Redis中的SETNX命令正是为此设计的,它通过原子性的方式进行判断和设置,可以确保只有一个客户端成功获得锁。 使用SETNX命令可以实现以下操作: 1. 如果键不存在,则设置键的值为指定的值。 2. 如果键已经存在,则不进行任何操作。 通过使用SETNX命令,可以简单、高效地实现分布式锁的功能,确保只有一个客户端能够成功获取锁,从而避免多个客户端同时操作相同资源的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Redis 中的 setnx 命令](https://blog.csdn.net/qq_53251251/article/details/131780770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [详解使用Redis SETNX 命令实现分布式锁](https://download.csdn.net/download/weixin_38734506/12828243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值