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

本文介绍了如何在SpringBoot项目中实现缓存预热,通过ApplicationRunner和InitializingBean接口,确保在应用程序启动时加载一千万用户白名单到Redis缓存,提高用户请求时的效率。
摘要由CSDN通过智能技术生成

将一千万用户白名单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 Strin

在Spring Boot项目中使用Redis缓存数据可以通过以下步骤实现: 1. 添加依赖:在项目的 pom.xml 文件中添加 Redis 相关的依赖。例如,可以添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 配置Redis连接信息:在项目的配置文件(如 application.properties 或 application.yml)中配置 Redis 的连接信息,包括主机、端口、密码等。例如,可以添加以下配置: ```properties spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= ``` 3. 创建缓存配置类:创建一个缓存配置类,用于配置 Redis 缓存相关的配置。可以使用 `@EnableCaching` 注解开启缓存功能,并使用 `@Configuration` 注解将该类声明为配置类。例如: ```java @Configuration @EnableCaching public class RedisCacheConfig extends CachingConfigurerSupport { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); // 配置键(key)的序列化方式 redisTemplate.setKeySerializer(new StringRedisSerializer()); // 配置值(value)的序列化方式 redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } @Override public KeyGenerator keyGenerator() { return new KeyGenerator() { @Override public Object generate(Object o, Method method, Object... objects) { // 自定义缓存的 key 生成策略 // 可以根据方法名和参数生成唯一的 key StringBuilder sb = new StringBuilder(); sb.append(method.getName()); for (Object obj : objects) { sb.append(":").append(obj.toString()); } return sb.toString(); } }; } } ``` 4. 使用缓存注解:在需要缓存数据的方法上添加缓存注解,例如 `@Cacheable`、`@CachePut`、`@CacheEvict` 等。这些注解可以根据需要配置缓存的 key、过期时间等。例如: ```java @Service public class UserService { @Autowired private UserRepository userRepository; @Cacheable(value = "users", key = "#id") public User getUserById(Long id) { return userRepository.findById(id).orElse(null); } @CachePut(value = "users", key = "#user.id") public User saveUser(User user) { return userRepository.save(user); } @CacheEvict(value = "users", key = "#id") public void deleteUser(Long id) { userRepository.deleteById(id); } } ``` 以上是使用 Redis 缓存数据的简单步骤,你可以根据项目的需求进行进一步的配置和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值