美文网首页
Redis分布式锁/Redis的setnx命令如何设置key的失

Redis分布式锁/Redis的setnx命令如何设置key的失

作者: Mracale | 来源:发表于2020-07-29 09:47 被阅读0次

Redis的setnx命令是当key不存在时设置key,但setnx不能同时完成expire设置失效时长,
不能保证setnx和expire的原子性。
我们可以使用set命令完成setnx和expire的操作,并且这种操作是原子操作。
下面是set命令的可选项:

set key value [EX seconds] [PX milliseconds] [NX|XX]
EX seconds:设置失效时长,单位秒
PX milliseconds:设置失效时长,单位毫秒
NX:key不存在时设置value,成功返回OK,失败返回(nil)
XX:key存在时设置value,成功返回OK,失败返回(nil)

案例:设置name=mracale,失效时长100s,不存在时设置
1.1.1.1:6379> set name mracale ex 100 nx
OK
1.1.1.1:6379> get name
"mracale"
1.1.1.1:6379> ttl name
(integer) 94

从上面可以看出,多个命令放在同一个redis连接中并且redis是单线程的,因此上面的操作可以看成setnx和expire的结合体,是原子性的。

相关文章

  • Redis分布式锁

    Redis分布式锁 实现 Redis 锁主要利用 Redis 的 setnx 命令。 加锁命令:SETNX key...

  • redis锁

    redis分布式锁的实现,本质是使用setnx 【set if not exits】命令设置key,设置成功则加锁...

  • redis分布式锁

    1. redis分布式锁的原理 Redis Setnx(SET if Not eXists) 命令在指定的 key...

  • 【笔记8-Redis分布式锁】从0开始 独立完成企业级Java电

    Redis分布式锁 Redis分布式锁命令 setnx当且仅当 key 不存在。若给定的 key 已经存在,则 s...

  • Redis--实现分布式锁

    Redis分布式锁实现的方式:setnx。查看redis库的源码: setnx方法只有在key不存在时才能设置成功...

  • redis分布式锁深度剖析

    redis分布式锁的实现主要是基于redis的setnx 命令(setnx命令解释见:http://doc.red...

  • redis 分布式锁

    redis 分布式锁 实现命令是 setnx key true expire key 5 5秒后过期del k...

  • redis分布式锁

    一个简单的Redis分布式锁首先借助于redis的setnx命令来操作,setnx本身针对key赋值的时候会判断r...

  • redis如何实现分布式锁以及存在的问题

    Redis 分布式锁 传统setnx 方法(先 status = setnx(key ,valiue) 判断s...

  • 分布式锁

    redis实现分布式锁 利用setnx命令,这个命令是原子性操作,只有在key不存在的情况下才能设置成功。 zoo...

网友评论

      本文标题:Redis分布式锁/Redis的setnx命令如何设置key的失

      本文链接:https://www.haomeiwen.com/subject/ntthrktx.html