使用Redis建模一对多关系

时间:2018-12-28 12:32:21

标签: redis relationship one-to-many modeling

我是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"

哈希集中的键是前一组的值。

这足以建立一对多关系的模型吗?

1 个答案:

答案 0 :(得分:0)

一个集合足以建模一对多关系。但这不是建模这种关系的唯一方法。您还可以使用丢失或排序集甚至流来为这种关系建模。自然的问题是要使用哪个,答案取决于它。

如果按照接收顺序存储消息很重要,则可以使用列表。如果您想阅读用户收到的最新消息,则可以使用列表。

另一方面,如果邮件具有“喜欢”或“赞”的概念,并且您希望按“喜欢”的数量查找邮件-排序集将更有意义。