使用Redis实现的SpringCache需防范的一点

SpringCache官方文档宣称,默认情况下,RedisCacheManager是会启用prefix的,这样的话,两个不同的缓存cacheNames如果用了同一个Key,数据是不会冲突的。但是,SpringBoot项目里面,如果发生了不同cacheNames,同一个Key,但是取到同一份数据的话,需要自己开启RedisCacheManager的setUsePrefix为true了。
代码如下

/**
 * 开启缓存
 *
 * @author newcih
 */
@Configuration
@EnableCaching(proxyTargetClass = true)
public class CacheConfig {

    @Autowired
    private RedisTemplate redisTemplate;

    public static final int REDIS_CACHE_EXPIRATION_DAYS = 1;

    @Bean
    public RedisCacheManager getRedisCacheManager() {
        RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate);
        redisCacheManager.setDefaultExpiration(REDIS_CACHE_EXPIRATION_DAYS * 24 * 3600);
        redisCacheManager.setUsePrefix(true);
        return redisCacheManager;
    }
}

猜你喜欢

转载自blog.csdn.net/newcih/article/details/80190068