Redis向事务中的集合添加元素值

2024-03-28 14:49:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我对redis还很陌生,我正在尝试在一个事务中执行以下操作:

增量键 将从前面递增的值添加到集合中

使用redis命令

multi
i = incr "value"
sadd "set" i
exec

有没有一个redis命令可以在一个步骤内完成这项工作,而不需要两个事务,并且处理代码中的值(在我的例子中是python代码)?在

非常感谢


Tags: 代码命令redisvalue步骤事务multi增量
2条回答

Redis有一个GETSET(http://redis.io/commands/getset)命令,您可以在同一个命令中获取变量的“旧”值并将其设置为新值。在

几乎可以肯定的是,没有方法增加值并将其添加到集合中,因为它们是redis的不同数据类型。在

希望有帮助!在

不幸的是你不能直接这么做。可以使用MULTI/EXEC块通过以下方式保证查询的原子性:

do {
    WATCH value
    i = 1 + GET value
    MULTI
    set value i
    SADD set i
    result = EXEC
} while (result == nil)

相关问题 更多 >