gpt4 book ai didi

Redis Booksleeve,临时设置

转载 作者:可可西里 更新时间:2023-11-01 11:01:20 24 4
gpt4 key购买 nike

我需要在现有集合和用户输入的一些值之间执行 Except 操作。我怎样才能最好地做到这一点?我首先考虑使用一个临时集来存储用户的值。这会在多线程应用程序(网络)中工作吗?如果是这样,我如何确定在执行 Except 调用之前临时集不会被其他用户覆盖?或者我是否需要为每个用户设置一个唯一的临时集?

也许交易才是出路? http://redis.io/topics/transactions

最佳答案

Set exceptset difference相同.在 Redis 中,我们将此操作称为集差异,我们可以使用 SDIFF 来实现。命令,或 SDIFFSTORE命令,这取决于我们是只想返回结果,还是将其存储在一个新集合中。这些都是内置函数。

在您的情况下,由于您的其中一组是用户生成的,只需将整个内容封装在 pipeline 中即可。 .这会将整个操作作为一个原子事务运行,在它完成之前不允许对 Redis 进行任何其他操作(由于 Redis 的单线程性质)。这看起来像(使用 Python 和 Redis-py 作为示例语言):

pipe = redis.pipeline()
pipe.sadd('user_set', 'user_val1', 'user_val2', 'user_valn')
diff_result = pipe.sdiff('my_set', 'user_set')
pipe.del('user_set')
pipe.execute()
#do whatever with diff_result here.

关于Redis Booksleeve,临时设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20594730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com