首页 > 数据库 >为什么用Redis做排行榜?

为什么用Redis做排行榜?

时间:2022-09-27 01:55:38浏览次数:55  
标签:map 为什么 Redis rank 排行榜 post typedTuple

  1. 数据结构方面:Redis的sorted set结构用来排名很方便,谁得分高谁排名往上。
  2. 排行榜是时限性业务。具有周期性。超出时间,自动删除。Redis的超时设置很好实现。
  3. 排行榜是热点数据。读多写少,Redis能减轻数据库压力。
  4. 数据库使用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);
}

注意: 一定要答全,不然很泪目。

标签:map,为什么,Redis,rank,排行榜,post,typedTuple
From: https://www.cnblogs.com/jadite/p/16732912.html

相关文章

  • Linux、Windows下Redis的安装即Redis的基本使用详解
    前言什么是RedisRedis是一个基于内存的key-value结构数据库。Redis是互联网技术领域使用最为广泛的存储中间件,它是「RemoteDictionaryService」的首字母缩写,也就......
  • SpringBoot项目为什么不需要添加@EnableTransactionManagement了
    SpringBoot项目为什么不需要添加@EnableTransactionManagement了1、前言我在刚开始搭建springBoot项目的时候,看见其他人在启动类上面使用了@EnableTransactionManagement......
  • 用过Redis吗,它使用在哪些地方(使用场景)
    1.用过Redis吗,它使用在哪些地方(使用场景)?Redis是一种内存型数据库,用作数据库,缓存和消息代理。数据结构简单,读写速度快(毫秒级),原子操作。适用于:数据高并发读写、海量数......
  • 什么是Bootstrap?以及为什么要使用Bootstrap
    Bootstrap是一个用于快速开发Web应用程序和网站的前端框架。Bootstrap是基于html、css、javascript的。Bootstrap具有移动设备优先、浏览器支持良好、容易上手、响应......
  • linux下redis的安装
    1.官网下载安装包然后解压  2.进入当前目录下面  3make编译一下 注意注意,要安装gcc-c++  4.然后makeinstall  5修改配置 redis.conf  ......
  • 有问题为什么需要多申请一个地址????
    #include<stdio.h>#include<stdlib.h>intmain(void){inta[4],i,t,j;for(i=0;i<=4;i++)scanf("%d",&a[i]);for(i=0;i<=4;i++){for(t=i+1......
  • redis 重启
    建立了一个群,大家可以加入进来,一起讨论程序员的相关话题,包括技术,升职,面试,职场,更重要的讨论如何通过技术赚钱。加+V:shiguanghui1001(时光会全拼),回复redis,免费赠送《全网re......
  • ansible 安装docker redis
    1、编辑redis.conf配置文件为了后期修改配置,先写一个配置。后期一般要修改配置的,建议先写一个【#库的数量,默认是16databases32】2、编辑剧本vimredis.yml【 #......
  • 【Redis】缓存删除策略
    Redis缓存删除策略分为定时删除、定期删除与惰性删除。前两个是主动删除,后一个是被动删除。1定时删除为key设置一个过期时间,时间一到,由定时器任务删除这个key。优......
  • Redis面试题
    为啥快?1.基于内存2.优秀的数据结构,大多数O(1)时间复杂度的命令3.自定义redis协议4.多路I/O复用模型5.单线程,避免线程切换影响持久化方式区别?AOF(保存的是命令)......