【发布时间】:2014-05-28 22:32:15
【问题描述】:
我正在使用 Redis 来存储 Java 对象。例如,我有一个类 User(FirstName, LastName),每个用户都有多个地址 Address(Street, City)。
用户以 Redis Hashes 的形式存储在数据库中:
HMSET user:0 firstname qwert lastname zuiop
由于每个地址都在逻辑上绑定到特定用户,因此它们的密钥包括用户的密钥:
HMSET user:0:addresses:0 street Teststreet city Exampletown
但是,我不确定如何提供以下功能:
- 访问数据库中的所有用户
- 访问属于特定用户的所有地址
基本上,我看到了两个选项:
-
使用集合:
SADD user user:0 SADD user user:1 ... SMEMBERS user (to access list of users) ... SADD user:0:addresses user:0:addresses:0 SADD user:0:addresses user:0:addresses:1 SMEMBERS user:0:addresses (to access list) -
使用键
KEYS user:* (to access list of users) KEYS user:0:addresses:* (to access list of addresses)
这些方法有其他替代方法吗?
哪种方式更“Redis”?
【问题讨论】: