相关疑难解决方法(0)

Redis中如何仅当key存在时才进行HSET?

我想运行HSET命令,但前提是密钥存在。类似于HSETNX除了exists而不是not exists

我读过有关使用 WATCH 或其他东西的内容,但到目前为止我还无法真正弄清楚。我希望能朝正确的方向推动。我唯一看到的是这个,但考虑到这些甚至不是有效的 redis 命令,我不知道这是如何工作的。

HSET 如果键存在

另外,在阅读了有关 WATCH 的内容后,我很担心,因为我不想在收到另一个请求时中止事务。

我基本上尝试 HGETALL 并在发出第二个 HSET 命令后立即表示它已被读取一次。

之后,我希望所有后续请求都知道它已被读取。

问题是,当我对不存在的键调用 HSET 时,它不仅会失败,还会在 redis 数据库中创建一个新条目,这是我不想要的。我只希望它更新记录(如果存在),而不必先检查它是否存在

据此,该方法对于高争用无论如何都不起作用(将会有很多对密钥的请求)

https://github.com/antirez/redis/issues/441

它说我可以以某种方式使用脚本,但我不确定

redis

5
推荐指数
1
解决办法
5625
查看次数

标签 统计

redis ×1