Redis在Redis哈希中存储值列表

Eya*_* Ch 0 redis

我的任务是获取特定user_id的动物列表(例如)。

我不想为每个用户使用设置/列表。

我尝试使用哈希,其中每个字段是一个user_id,每个值是一个串联的动物字符串。例如:{"1234" : "dog cat", "8477" : "bird dog"}。在这里,只需调用Redis,即可为用户“ 1234”获取动物。

我知道有一个APPEND命令,可将项目追加到字符串中。但这不适用于将值附加到散列内。

我也尝试过使用set,并通过前缀获取值。对于上面的示例,我的集合将包含:("1234:dog", "1234:cat", "8477:bird", "8477:dog")。为了获取用户“ 1234”的所有动物,我需要搜索前缀“ 1234:”。但是,当我有太多项目时,这不是规模。

我该怎么做才能完成任务?

saz*_*zad 5

如果您不想为每个用户保留单独的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)