为了账号安全,请及时绑定邮箱和手机立即绑定

redis来处理论坛的最新回复要怎么处理

redis来处理论坛的最新回复要怎么处理

aluckdog 2019-05-24 19:05:11
首页论坛的列表,一有新回复,就会把有新回复的帖子顶到最上面,这个如果交给redis来处理,该怎么办?如果用sql更新最后一次回复时间的话,将最后回复时间降序就可以了。但是对于论坛来讲,回复很频繁,这样子处理不太好。有人说要采用listarray('时间戳'=>'帖子ID','时间戳'=>'帖子ID','时间戳'=>'帖子ID','时间戳'=>'帖子ID',......)现在就有一个问题,比方我帖子ID:17最后一次更新的时间戳是10000000000,也就是'10000000000’=》17,那现在更新帖子就必须要先把这条旧的记录去掉,再插入新的记录'10000000001’=》17,中间的这个步骤不知道要怎么实现
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

首先需要确定你的论坛列表是否就是根据回复时间排序的,是的话可以使用Redis的有序集合,分数设置为时间戳。值为帖子id,这样有新的回复的时候更新分数,列表首先根据redis获得排序后的id然后从数据库查询对应数据
                            
查看完整回答
反对 回复 2019-05-24
?
www说

TA贡献1775条经验 获得超8个赞

用redis做个消息队列,有很多种做法。第一种:生产者消费者模式,主要用blpop来实现。(不推荐)第二种:发布订阅模式,主要用pubsub来实现。第三种:直接就用个list队列,新发布的全都push进去,ajax页面即时填充元素,不刷新情况下是不走后端的,直接前端取数据渲染,刷新情况下,直接从当天这个最新的redis队列取数据,传给前端渲染,然后服务器端跑个crontab脚本,定时把每天的数据落地到mysql。还有其他很多种实现的方法。。。
                            
查看完整回答
反对 回复 2019-05-24
  • 2 回答
  • 0 关注
  • 550 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信