redis锁

作者: Miss小骷髅 | 来源:发表于2018-04-13 18:13 被阅读0次

    引用文献: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 命令来调用。

    相关文章

      网友评论

        本文标题:redis锁

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