与Redis建立一对多关系模型

与Redis建立一对多关系模型,redis,relationship,one-to-many,modeling,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 B

我是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"
散列集中的键是上一个集合的值


这足以模拟一对多关系吗?

一个集合足以模拟一对多关系。但这并不是建立这种关系模型的唯一方法。您还可以使用lost或sortedset甚至流来建模这种关系。自然的问题是使用哪一个,答案是这要视情况而定

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


另一方面,如果消息有一个likes或upvots的概念,并且您希望通过likes的数量来查找消息,那么排序集将更有意义

“够了”是什么意思?这个(集合)当然是一个1:N的模型,从人到它的消息。我的意思是,如果我到现在为止所做的足以模拟关系。我必须使用集合,如果你说我是如何做到的,我会相信你。