gpt4 book ai didi

hash - Redis 中散列上的原子 GETSET

转载 作者:IT王子 更新时间:2023-10-29 05:56:26 30 4
gpt4 key购买 nike

我将在 Redis 中存储大量 URL 的点击计数器。我打算使用 hash因为这似乎有道理。它还具有对我的用例至关重要的原子增量函数。

每隔一段时间,我会将每个 URL 的点击计数汇总到另一个数据存储中。为此,我想获得命中数并将其重置为零。我似乎找不到像 GETSET 这样的操作适用于哈希。如果我在获取命中计数和将其重置为零之间记录一次命中,如果没有某种原子操作,它将丢失。

我错过了什么吗?我想到的一种替代方法是在我的客户端 (python) 代码中散列 URL 并使用 string commands ,但当 Redis 本身提供哈希时,这似乎有点不合时宜。

最佳答案

试试看redis transactions文档,即WATCH的组合和 MULTI命令:

WATCHed keys are monitored in order to detect changes against them. If at least one watched key is modified before the EXEC command, the whole transaction aborts, and EXEC returns a Null multi-bulk reply to notify that the transaction failed.

...

So what is WATCH really about? It is a command that will make the EXEC conditional: we are asking Redis to perform the transaction only if no other client modified any of the WATCHed keys. Otherwise the transaction is not entered at all.

关于hash - Redis 中散列上的原子 GETSET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702549/

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