@Eli 已经解释了如何更新元素分数,现在 zadd 添加了@ZettaCircl 解释的新选项,我正在解释如何使用分数和元素通过示例更新元素。
- NX = 添加新元素
- XX = 更新元素
将三个国家添加到排序集中
127.0.0.1:6379> zadd country nx 1 'pakistan' // nx = add new element
(integer) 1
127.0.0.1:6379> zadd country nx 2 'turkey'
(integer) 1
127.0.0.1:6379> zadd country nx 3 'UK'
(integer) 1
获取分数的国家
127.0.0.1:6379> zrange country 0 10 withscores
1) "pakistan"
2) "1"
3) "turkey"
4) "2"
5) "UK"
6) "3"
更新国家/地区
将国家/地区巴基斯坦(元素)更新为新名称使用分数
127.0.0.1:6379> zadd country xx ch 1 'islamic republic of pakistan'
(integer) 0 // 0 means not updated
使用元素名称('pakistan')更新巴基斯坦的国家分数
127.0.0.1:6379> zadd country xx ch 4 'pakistan'
(integer) 1 // updated successfully
获取分数的国家
我们可以在这里看到我们只更新了分数。
127.0.0.1:6379> zrange country 0 10 withscores
1) "turkey"
2) "2"
3) "UK"
4) "3"
5) "pakistan"
6) "4" // score updated
结论
我们只能使用元素名称更新排序集中的分数。
我们如何更新元素
首先我们需要删除国家 paksitan。
127.0.0.1:6379> zrem country pakistan
(integer) 1 // removed successfully
获取分数的国家
127.0.0.1:6379> zrange country 0 10 withscores
1) "turkey"
2) "2"
3) "UK"
4) "3"
用新名称添加巴基斯坦
使用新名称和以前的分数将新元素添加到国家排序集中
127.0.0.1:6379> zadd country nx 1 'islamic republic of pakistan'
(integer) 1
获取分数的国家
127.0.0.1:6379> zrange country 0 10 withscores
1) "islamic republic of pakistan"
2) "1"
3) "turkey"
4) "2"
5) "UK"
6) "3"
结论
首先我们需要删除元素,然后将新元素添加到排序集中。