Database 如何有效地利用redis实现嵌套评论系统

Database 如何有效地利用redis实现嵌套评论系统,database,redis,Database,Redis,我正在尝试使用redis实现一个嵌套的注释系统,例如,每一篇文章都可以有注释作为第一层注释,然后第一层注释可以被注释并创建第二层注释,等等,可以有无限层。现在我使用哈希,每个键代表一篇文章,一个字段代表文章信息,一个字段代表注释,注释的值是xml格式的,其中标记是嵌套为子节点的注释ID。但这是非常低效的,因为每次我试图检索评论时,我都必须将它们作为一个整体。所以我想知道是否还有其他更有效的方法?谢谢我认为一个好的第一步是考虑这在关系数据库中会是什么样子。例如,一个简单的系统可以具有以下模式: A

我正在尝试使用redis实现一个嵌套的注释系统,例如,每一篇文章都可以有注释作为第一层注释,然后第一层注释可以被注释并创建第二层注释,等等,可以有无限层。现在我使用哈希,每个键代表一篇文章,一个字段代表文章信息,一个字段代表注释,注释的值是xml格式的,其中标记是嵌套为子节点的注释ID。但这是非常低效的,因为每次我试图检索评论时,我都必须将它们作为一个整体。所以我想知道是否还有其他更有效的方法?谢谢

我认为一个好的第一步是考虑这在关系数据库中会是什么样子。例如,一个简单的系统可以具有以下模式:

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中返回的值
  • 用注释数据填充步骤2中创建的哈希
  • 如果注释没有父项,请将其ID添加到相应的
    文章注释:
    集中。如果它确实有父项,请将其添加到相应的
    注释子项:
    集中

  • 如果我想获取某个id的子项,我需要两个操作:1.获取
    注释子项的值:
    2。获取
    注释:
    ,是否正确?