我的任务是获取特定user_id的动物列表(例如)。
我不想为每个用户使用设置/列表。
我尝试使用哈希,其中每个字段是一个user_id,每个值是一个串联的动物字符串。例如:{"1234" : "dog cat", "8477" : "bird dog"}。在这里,只需调用Redis,即可为用户“ 1234”获取动物。
我知道有一个APPEND命令,可将项目追加到字符串中。但这不适用于将值附加到散列内。
我也尝试过使用set,并通过前缀获取值。对于上面的示例,我的集合将包含:("1234:dog", "1234:cat", "8477:bird", "8477:dog")。为了获取用户“ 1234”的所有动物,我需要搜索前缀“ 1234:”。但是,当我有太多项目时,这不是规模。
我该怎么做才能完成任务?
如果您不想为每个用户保留单独的Set / List,而是希望以最佳方式获取每个用户的数据,则Redis SortedSet数据结构和词典搜索似乎是您的解决方案。
将数据保存在SortedSet中(名为animals):
ZADD animals 0 1234:dog 0 1234:cat 0 8477:bird 0 8477:dog
Run Code Online (Sandbox Code Playgroud)
1234从该SortedSet 获取用户数据:
ZRANGEBYLEX animals [1234: (1234;
Run Code Online (Sandbox Code Playgroud)
输出:
1) "1234:cat"
2) "1234:dog"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2355 次 |
| 最近记录: |