Redis 推荐使用带有可选参数的 SET
作为锁定机制的方法。 IE。 SET lock 1 EX 10 NX
仅当锁不存在时才会设置锁,并且会在 10 秒后过期。
我正在使用 Node Redis,它有一个 set()
方法,但我不知道如何将附加参数传递给它以使 key 过期并且如果它已经被创建则不被创建存在,或者即使有可能。
也许我必须使用 setnx()
和 expire()
作为单独的调用?
最佳答案
阅读 Node Redis 源代码后,我发现所有方法都接受任意数量的参数。当产生参数数量不正确的错误时,这是由 Redis 而不是 Node 模块产生的。
我早期尝试提供多个参数是因为我只安装了 Redis 2.2.x,其中 SET 只接受 2.6.12 的 NX 和 EX 参数。
所以在安装了 Redis 2.6.12 后,以下方法调用将与 node redis 一起使用,如果它不存在,则设置一个变量,并将其设置为 5 分钟后过期:
$client->set('hello', 'world', 'NX', 'EX', 300, function(err, reply) {...});
$client->set(['hello', 'world', 'NX', 'EX', 300], function(err, reply) {...});
关于node.js - Node Redis - 使用 EX 和 NX 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861424/