怎样设计评论系统

打印 上一主题 下一主题

主题 1013|帖子 1013|积分 3039


一,需求

1,发布评论,支持回复楼层,楼中楼
2,评论读取排序,按照点赞数,时间排序
3,置顶评论,显示作者回复过,点赞过,@用户
4,系统敏感词评审
5,删除评论
6,管理平台,搜刮,删除,评审等操纵
二,分析及难点

量大,怎么存,存哪里,怎么做到高性能查询,及实现高效排序
不能用普通的表来存储,量大,查询效率不高
用redis ZSET,可实现排序
量的问题:这么多评论,可能几万条,乃至更多。导致zset存的量多大,怎么拆分。
怎么担当评论数据,可用mq举行削峰。
持久化,固然要存redis,表里也需要存储的,可通过异步存储
从业务层级来说,主题对象是作者发布内容,其次是评论,评论也分第一次层级,回下面回复内容,及嵌套回复。
表结构设计
发布内容表:发布内容ID 发布内容 
评论表:评论ID 发布ID 层级标志( 0代表第一层评论)父层级ID 评论时间
redis zset存储,key 发布ID, number 评论人ID(第一层),sorce点赞数
评论内容呢,number只能用ID标识,需要另外存吗,String key = 发布ID+评论者ID,value=内容
评论回复呢,回复另有点赞数呢,还是用zset存储,key=发布者ID+评论人ID
number=当前回复人ID,sorce还是点赞数据,他的评论内容还是String存储
有层级结构:用hash存储呢,key field value,可以取代String 
key = 发布ID filed 论者ID value=内容,可以批量操纵,批量取数据
高并发访问问题,热点评论问题
按理说,数据都放在redis,高并发访问问题不大,可以用多级缓存,和双查抄锁
热点评论问题:还是导致,redis大key问题
mq消息积存问题,写入评论,立刻展示,后续逻辑比如落表,写缓存异步处理惩罚




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表