首页论坛的列表,一有新回复,就会把有新回复的帖子顶到最上面,这个如果交给redis来处理,该怎么办?
如果用sql更新最后一次回复时间的话,将最后回复时间降序就可以了。但是对于论坛来讲,回复很频繁,这样子处理不太好。
有人说要采用list
array(
'时间戳'=>'帖子ID',
'时间戳'=>'帖子ID',
'时间戳'=>'帖子ID',
'时间戳'=>'帖子ID',
......
)
现在就有一个问题,比方我帖子ID:17最后一次更新的时间戳是10000000000,也就是'10000000000’=》17,那现在更新帖子就必须要先把这条旧的记录去掉,再插入新的记录'10000000001’=》17,中间的这个步骤不知道要怎么实现
首先需要确定你的论坛列表是否就是根据回复时间排序的,是的话可以使用 Redis 的有序集合,分数设置为时间戳。值为帖子id,这样有新的回复的时候更新分数,列表首先根据 redis 获得排序后的id然后从数据库查询对应数据