如何有效地使用redis实现嵌套注释系统

 儒雅的活在当下 发布于 2023-01-07 18:49

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

1 个回答
  • 我认为良好的第一步是考虑关系数据库中的这种情况.例如,一个简单的系统可以具有以下模式:

    Article (
      id INT,
      name TEXT,
      body TEXT
    )
    
    Comment (
      id INT,
      article_id INT,
      parent INT,
      author TEXT,
      body TEXT
    )
    

    将其转换为Redis需要一点思考.您希望确保您使用的数据结构是正确的,以便为您提供最快的查找时间.以下是我在实现系统时使用的不同键/键结构:

    article:<id> - 存储文章信息的哈希,并具有以下键:

    name - 文章的名称

    body - 文章的正文

    article-id - 商品ID的自动增量值

    article-comments:<id> - 一组注释ID,它们是ID为的文章的顶级注释 <id>

    comment:<id> - 存储评论信息并具有以下键的:

    author - 评论作者

    body - 评论的正文

    comment-id - 注释ID的自动增量值

    comment-children:<id> - 一组注释ID,表示回复ID为的注释的注释 <id>

    添加新评论的步骤如下:

      增量 comment-id

      创建一个新哈希,其键是第1步中的连接comment:和值返回

      使用注释数据填写在步骤2中创建的哈希

      如果注释没有父项,请将其ID添加到适当的article-comments:<id>集合中.如果它有父项,请将其添加到适当的comment-children:<id>集合中.

    2023-01-07 18:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有