我想存储一些如下信息(注意,我根本没有结合这个数据结构,但这显示了我想要存储的基础信息):
{ user_id: 12345, page_id: 2, country: 'DE' }
Run Code Online (Sandbox Code Playgroud)
在这些记录中,user_id是唯一字段,但page_id不是.
我想将其转换为Redis数据结构,我希望能够按如下方式运行高效搜索:
在Redis中实际可以做到这一点吗?如果是这样,我应该使用哪些数据结构,以及在插入记录时如何避免重复记录的可能性?
听起来您需要两种密钥类型:用于存储用户数据的 HASH 键,以及包含相关用户列表的每个页面的 LIST。以下是其工作原理的示例。
加载数据:
> RPUSH page:2:users 12345
> HMSET user:12345 country DE key2 value2
Run Code Online (Sandbox Code Playgroud)
拉取数据:
# All users for page 2
> LRANGE page:2:users 0 -1
# All users for page 2 and their countries
> SORT page:2:users By nosort GET # GET user:*->country GET user:*->key2
Run Code Online (Sandbox Code Playgroud)
从页面中删除用户:
> LREM page:2:users 0 12345
Run Code Online (Sandbox Code Playgroud)
在 SORT 中重复 GET 以检索用户的其他值。
我希望这对您有所帮助,如果您有任何需要澄清的内容或需要进一步的帮助,请告诉我。我还建议阅读redis 网站上提供的命令列表和文档,尤其是有关 SORT 操作的命令列表和文档。
| 归档时间: |
|
| 查看次数: |
3563 次 |
| 最近记录: |