我是Redis的新手,我需要执行以下任务:给定以下实体,对一对多关系进行建模:
可以接收一条或多条消息的人(鲍勃,汤姆,山姆),消息的特征是“文本” 和”数据“ 。
我所做的是这样:
SADD Bob:messages "Bob:message:1" "Bob:message:2" "Bob:message:3"
其中Bob:messages是集合的关键,而“ Bob:message:1”,“ Bob:message:2”等是与Bob关联的消息。
消息另存为哈希集,每个哈希集代表鲍勃的消息:
HMSET Bob:message:1 text "Hi Bob" data "20/12/2019:13:23"
HMSET Bob:message:2 text "Give me the keys" data "20/12/2019:13:24"
HMSET Bob:message:3 text "Bye Bob" data "20/12/2019:13:25"
哈希集中的键是前一组的值。
这足以建立一对多关系的模型吗?
答案 0 :(得分:0)
一个集合足以建模一对多关系。但这不是建模这种关系的唯一方法。您还可以使用丢失或排序集甚至流来为这种关系建模。自然的问题是要使用哪个,答案取决于它。
如果按照接收顺序存储消息很重要,则可以使用列表。如果您想阅读用户收到的最新消息,则可以使用列表。
另一方面,如果邮件具有“喜欢”或“赞”的概念,并且您希望按“喜欢”的数量查找邮件-排序集将更有意义。