Eri*_*rik 3 redis node.js express
我使用 Redis 作为我的数据在排序集中的持久性。我的数据如下所示:
{text: 'Some text1', data: [1, 2, 3]},
{test: 'Some text2', data: [1, 3]}
.
.
.
Run Code Online (Sandbox Code Playgroud)
如何更新该列表中的某些元素?假设我需要更新
{test: 'Some text2', data: [1, 3]}
Run Code Online (Sandbox Code Playgroud)
到
{test: 'Some text2', data: [1, 3, 7]}
Run Code Online (Sandbox Code Playgroud)
您只能将值添加到排序集,或删除它们。您不能更改/更新它们,除了它们的分数。
您可以将值直接保存为字符串:
SET text2 "{\"test\": \"Some text2\", data: [1, 3]}"
Run Code Online (Sandbox Code Playgroud)
然后通过替换原始值来更新它们
SET text2 "{\"test\": \"Some text2\", data: [1, 3, 7]}"
Run Code Online (Sandbox Code Playgroud)
另一种选择是将值存储在哈希中。
更新:
假设您有 User 对象,这些对象以 json 形式保存,键为“users:[id]”:
SET users:1 "{\"id\":1,\"name\":\"Santtu\"}"
Run Code Online (Sandbox Code Playgroud)
然后将用户对象的键存储在排序集“用户”中。
ZADD users 1 "users:1"
ZADD users 2 "users:2"
Run Code Online (Sandbox Code Playgroud)
您现在可以通过首先查询键然后查询每个用户数据来获取用户:
ZRANGE users 0 9 # returns [ "users:1", "users:2", ...]
GET "users:1"
GET "users:2"
...
Run Code Online (Sandbox Code Playgroud)
通过更改分数来更改集合中的用户顺序:
ZADD users 2 "users:123"
ZADD users 1 "users:456"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3743 次 |
| 最近记录: |