Spring Redis缓存普通键

时间:2018-11-27 06:37:18

标签: spring caching redis

我为Spring应用程序实现了带Redis的缓存。现在,我想每天运行一个作业以将数据从Mysql同步到Redis。 但是我有一个问题,即redis密钥不是人类可读的文本。例如userList2:�� 使用Spring Cache时如何将Redis密钥存储为纯文本?

1 个答案:

答案 0 :(得分:0)

您可以使用cacheManager配置内的自定义redis模板将值存储为json。

@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
    redisTemplate.setConnectionFactory(redisConnectionFactory);
    redisTemplate.setKeySerializer(new StringRedisSerializer());
    redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
    redisTemplate.setHashKeySerializer(new StringRedisSerializer());
    redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
    return redisTemplate;
}

@Bean
public CacheManager cacheManager(RedisTemplate redisTemplate) {
    RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
    cacheManager.setUsePrefix(true);
    return cacheManager;
}