我是redis的新手,我正在尝试在tranaction中执行以下操作:
增量键 将之前的递增值添加到集合
使用redis命令就像
multi
i = incr "value"
sadd "set" i
exec
是否有任何redis命令可以一步完成而不需要两个事务并处理代码中的值(在我的情况下是python代码)?
非常感谢
答案 0 :(得分:2)
不幸的是你不能直接这样做。您可以使用MULTI / EXEC块以下列方式保证查询的原子性:
do {
WATCH value
i = 1 + GET value
MULTI
set value i
SADD set i
result = EXEC
} while (result == nil)
答案 1 :(得分:0)
Redis有一个GETSET(http://redis.io/commands/getset)命令,您可以在其中获取变量的“旧”值,并在同一命令中将其设置为新值。
几乎可以肯定没有方法来输入值并将其添加到集合中,因为它们是redis的不同数据类型。
希望它有所帮助!