3

我在 Redis 中使用排序集数据类型。我用 command 添加数据zadd。添加数据是JSON格式。

如何按分数更改此排序集中的值?我需要获取 JSON 值并更改一个字段,然后更新此排序集。

我试图添加具有相同分数的agag数据,但我得到了重复

4

3 回答 3

15

这很简单!

ZREM key data;
ZADD key score newdata;

您根本无法更新 SET 结构中的元素。根据定义,这是不可能的!就像我不能吃一杯水,我只能喝它^_^

如果您有任何进一步的问题,请回复。

顺便说一句,我不知道您的应用程序需要,但我有一种强烈的感觉 SORTED SET 不适合您的应用程序场景。

于 2015-09-24T07:43:37.253 回答
4

一个不会更新集合的(排序的或未排序的)成员。您必须删除旧成员并在其位置添加新的(更新的 JSON)和相关分数。您可以将其包装在 Lua 或 WATCH/MULTI/EXEC 块中以实现原子性。

于 2015-09-23T22:20:29.257 回答
1

如果您将列表用作键(分数)=> 值存储,则可以先按分数删除。

ZREMRANGEBYSCORE key score score
ZADD key score data
于 2020-09-16T23:27:30.870 回答