redis锁

引用文献:http://doc.redisfans.com/string/set.html

本文仅是用来记录学习使用,不作他用。

SET key value [EX seconds] [PX milliseconds] [NX|XX]

可以通过以下修改,让这个锁实现更健壮:

不使用固定的字符串作为键的值,而是设置一个不可猜测(non-guessable)的长随机字符串,作为口令串(token)。

不使用 DEL 命令来释放锁,而是发送一个 Lua 脚本,这个脚本只在客户端传入的值和键的口令串相匹配时,才对键进行删除。

以下是一个简单的解锁脚本示例:

ifredis.call("get",KEYS[1])==ARGV[1]thenreturnredis.call("del",KEYS[1])elsereturn0end

这个脚本可以通过 EVAL ...script... 1 resource-name token-value 命令来调用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 由于具体业务场景的需求,需要保证数据在分布式环境下的正确更新,所以研究了一下Java中分布式锁的实现。 Java分...
    逐末阅读 3,864评论 1 10
  • Redis 单线程:网络IO和键值对读写是由一个线程完成的(网络请求模块和数据操作模块是单线程的) 1,使用set...
    沐兮_d64c阅读 1,612评论 0 2
  • 1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用...
    梦幻_78af阅读 955评论 0 2
  • 我想你了,但是我永远不会让你知道。 夹在在谎言中,夹在在玩笑里,我的喜欢才能表达的自然。 除此之外,我还能怎么表达...
    谢丹儒阅读 1,314评论 3 7
  • 一、鸡的常用成语有:鸡飞狗跳、鸡飞蛋打、鸡毛蒜皮(同“鸡零狗碎”)、闻鸡起舞、鸡鸣狗盗(同“雕虫小技”)、鸡犬不留...
    宛婷阅读 581评论 0 1

友情链接更多精彩内容