ToB企服应用市场:ToB评测及商务社交产业平台
标题:
为什么用Redis做排行榜?
[打印本页]
作者:
兜兜零元
时间:
2022-10-5 18:56
标题:
为什么用Redis做排行榜?
数据结构方面:Redis的sorted set结构用来排名很方便,谁得分高谁排名往上。
排行榜是时限性业务。具有周期性。超出时间,自动删除。Redis的超时设置很好实现。
排行榜是热点数据。读多写少,Redis能减轻数据库压力。
数据库使用limit查询排名靠后的数据性能差,效率低。
select * from table limit 10000, 100
源码:
@ResponseBody
@GetMapping("/post/hots")
public Result hotPost() {
// 从redis获取排行榜
Set<ZSetOperations.TypedTuple> lastWeekRank = redisUtil.getZSetRank("last_week_rank", 0, 6);
List<Map<String, Object>> hotPosts = new ArrayList<>();
for (ZSetOperations.TypedTuple typedTuple : lastWeekRank) {
Map<String, Object> map = new HashMap<>();
map.put("comment_count", typedTuple.getScore());
map.put("id", redisUtil.hget("rank_post_" + typedTuple.getValue(), "post:id"));
map.put("title", redisUtil.hget("rank_post_" + typedTuple.getValue(), "post:title"));
hotPosts.add(map);
}
return Result.succ(hotPosts);
}
复制代码
注意: 一定要答全,不然很泪目。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4