允许多个客户端在redis数据库中使用唯一的帐户
因此,我有多个redis客户端,如: c1、c2、c3 在我的数据库中有多个独特的帐户,如: a1、a2、a3 我想让每个客户“屏蔽”一个账户,如果该账户被一个客户使用,则不允许另一个客户使用该账户。此外,如果持有帐户的客户端崩溃,则应取消阻止被阻止的帐户 我目前所做的是(例如id为0的帐户): 有更好的方法吗?我可能想使用脚本,但我认为应该有一个更简单的选项来解决这个问题。支持以下调用(我不确定您使用的是什么语言/客户端):允许多个客户端在redis数据库中使用唯一的帐户,redis,Redis,因此,我有多个redis客户端,如: c1、c2、c3 在我的数据库中有多个独特的帐户,如: a1、a2、a3 我想让每个客户“屏蔽”一个账户,如果该账户被一个客户使用,则不允许另一个客户使用该账户。此外,如果持有帐户的客户端崩溃,则应取消阻止被阻止的帐户 我目前所做的是(例如id为0的帐户): 有更好的方法吗?我可能想使用脚本,但我认为应该有一个更简单的选项来解决这个问题。支持以下调用(我不确定您使用的是什么语言/客户端): 通过这种方式,您可以在一个命令中完成整个任务,而不必使用WATCH/
通过这种方式,您可以在一个命令中完成整个任务,而不必使用WATCH/MULTI/EXEC您好,谢谢您的回答,太完美了:)。我正在使用go with the go redis。它似乎没有提供这一点,但命令生成器允许我轻松添加新命令。
K := account:0:used
watch(K)
multi
if exists(K)
abort
exec:
setWithTimeout(K,5*60*1000,"1")//Ensure Its blocked for 5 Minutes
SET account:0:used EX 3600 NX