Redis缓存预热数据(Springboot项目初始化加载)

将一千万用户白名单load缓存,用户请求的时候判断该用户是否是缓存里面的用户
 

 1、springboot实现初始化加载配置(实现缓存预热)

             1、采用实现springboot ApplicationRunner
                该方法仅在SpringApplication.run(…)完成之前调用

             2、采用实现InitializingBean
                InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet()方法。
                在spring初始化bean的时候,如果bean实现了InitializingBean接口,
                在对象的所有属性被初始化后之后才会调用afterPropertiesSet()方法

      一般采用实现InitializingBean的方式预热数据

 步骤:

1)class RangingService implements InitializingBean

2)@Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("======enter init bean=======");
        this.rankSaleAdd();
    }

3)预热方法,查询数据库数据,加到redis缓存

  private static final String SALESCORE = "sale_score_rank:";

    public void rankSaleAdd() {
        UserScoreExample example = new UserScoreExample();
        example.setOrderByClause("id desc");
        List<UserScore> userScores = userScoreMapper.selectByExample(example);
        userScores.forEach(userScore -> {
            String key = userScore.getUserId() + ":" + userScore.getName();
            redisService.zAdd(SALESCORE, key, userScore.getUserScore());
        });
    }

 

    /**
     * 有序集合添加
     *
     * @param key
     * @param value
     * @param scoure
     */
    public void zAdd(String key, Object value, double scoure) {
        ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
        zset.add(key, value, scoure);
    }

 

2.

 1、springboot实现初始化加载配置(实现缓存预热)

             1、采用实现springboot ApplicationRunner
                该方法仅在SpringApplication.run(…)完成之前调用

             2、采用实现InitializingBean
                InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet()方法。
                在spring初始化bean的时候,如果bean实现了InitializingBean接口,
                在对象的所有属性被初始化后之后才会调用afterPropertiesSet()方法

         2、初始化同步redis数据


         3、初始化完成再放入请求

 

 


版权声明:本文为peng_0129原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。