首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表与键扫描

问列表与键扫描
EN

Stack Overflow用户
提问于 2014-05-28 10:02:25
回答 1查看 53关注 0票数 1

我使用Redis来存储Java对象。例如,我有一个类用户(FirstName,LastName),每个用户都有多个地址(街道、城市)。

用户以Redis散列的形式存储在数据库中:

代码语言:javascript
复制
HMSET user:0 firstname qwert lastname zuiop

当地址在逻辑上绑定到特定用户时,它们的密钥包括用户的密钥:

代码语言:javascript
复制
HMSET user:0:addresses:0 street Teststreet city Exampletown

然而,我不知道如何提供以下功能:

  • 访问数据库中的所有用户
  • 访问属于特定用户的所有地址

基本上,我看到了两种选择:

  1. 使用组: SADD用户:0 SADD用户:1.SMEMBERS用户(访问用户列表).SADD用户:0:地址用户:0:0 SADD用户:0:地址用户:0:地址
  2. 使用键 密钥用户:*(访问用户列表)密钥用户:0:地址:*(访问地址列表)

除了这些方法之外,还有什么替代办法吗?

哪条路更"Redis"?

EN

回答 1

Stack Overflow用户

发布于 2014-05-28 10:50:19

重要:在生产中不使用KEYS --它可以在Redis遍历密钥空间时阻止应用程序的请求。

lists方法当然是解决这个问题的一种方法,但是我会考虑列表最终需要的空间。或者,我会考虑使用v2.8的新SCAN命令,以非阻塞的方式迭代密钥名模式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23908544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档