Database 如何有效地利用redis实现嵌套评论系统
我正在尝试使用redis实现一个嵌套的注释系统,例如,每一篇文章都可以有注释作为第一层注释,然后第一层注释可以被注释并创建第二层注释,等等,可以有无限层。现在我使用哈希,每个键代表一篇文章,一个字段代表文章信息,一个字段代表注释,注释的值是xml格式的,其中标记是嵌套为子节点的注释ID。但这是非常低效的,因为每次我试图检索评论时,我都必须将它们作为一个整体。所以我想知道是否还有其他更有效的方法?谢谢我认为一个好的第一步是考虑这在关系数据库中会是什么样子。例如,一个简单的系统可以具有以下模式:Database 如何有效地利用redis实现嵌套评论系统,database,redis,Database,Redis,我正在尝试使用redis实现一个嵌套的注释系统,例如,每一篇文章都可以有注释作为第一层注释,然后第一层注释可以被注释并创建第二层注释,等等,可以有无限层。现在我使用哈希,每个键代表一篇文章,一个字段代表文章信息,一个字段代表注释,注释的值是xml格式的,其中标记是嵌套为子节点的注释ID。但这是非常低效的,因为每次我试图检索评论时,我都必须将它们作为一个整体。所以我想知道是否还有其他更有效的方法?谢谢我认为一个好的第一步是考虑这在关系数据库中会是什么样子。例如,一个简单的系统可以具有以下模式: A
Article (
id INT,
name TEXT,
body TEXT
)
Comment (
id INT,
article_id INT,
parent INT,
author TEXT,
body TEXT
)
将其转换为Redis需要一些思考。您需要确保所使用的数据结构是正确的,能够提供最快的查找时间。以下是我在实现您的系统时将使用的不同键/键结构:
-存储文章信息并具有以下键的哈希:文章:
-文章的名称名称
-文章正文正文
-物品id的自动增量值物品id
-一组评论ID,是ID为文章评论:
-a具有存储注释信息的,并具有以下键:注释:
-评论作者作者
-注释的正文文本body
-注释id的自动增量值注释id
-一组注释ID,表示对ID为注释子项:
注释id
注释:
的concatation和步骤1中返回的值文章注释:
集中。如果它确实有父项,请将其添加到相应的注释子项:
集中如果我想获取某个id的子项,我需要两个操作:1.获取
注释子项的值:
2。获取注释:
,是否正确?