javascript - 使用 Redis 更新排序集

标签 javascript node.js nosql redis

目前我正在尝试更新一个排序集成员。查看文档,使用 ZADD 似乎应该更新一个成员,如果它的分数已经存在。但是,在使用此代码尝试更新成员时,

db.zadd("users", parseInt(key, 10) + 1, JSON.stringify(newData));

....即使分数已经存在,也会添加一个新条目!如何使用 Redis 更新排序集成员?

最佳答案

只要条目之间的 key 和成员匹配,ZADD 就会替换旧成员的分数:

redis localhost:6379> ZADD test-key 40 blah
(integer) 1
redis localhost:6379> ZRANGE test-key 0 -1 WITHSCORES
1) "blah"
2) "40"
redis localhost:6379> ZADD test-key 45 blah
(integer) 0
redis localhost:6379> ZRANGE test-key 0 -1 WITHSCORES
1) "blah"
2) "45"

也许您在 ZADD 命令之间使用了不同的键或成员?

关于javascript - 使用 Redis 更新排序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18625581/

相关文章:

javascript - 使元素在 css 缩放后表现相同

javascript - 有没有办法在 firebase 中减少请求?

javascript - Selenium - 自动化javascript按钮点击

javascript - 对于通过 JavaScript 隐藏/显示的输入,iOS 中的上一个/下一个按钮被禁用

javascript - 当 slider 更改和初始条件时如何获取当前数据 slider ?

cassandra - 在每个 Cassandra 节点上拥有 100% 的所有权是否可以接受?

java - Spring Data MongoDB - java.net.SocketException : Connection reset

node.js - 'ts-node' 不是内部或外部命令、可运行程序或批处理文件

http - 监听大多数端口时出现 Node.js EACCES 错误

javascript - Waterline ORM 中的继承