时间:2019年02月04日 | 作者 : lovean | 分类 : Java | 浏览: 10026次 | 评论 2 人
在做短信发送模块的时候,使用haskey判断key是否存在时候,发现明明redis中有内容,却一直返回false。在stackoverflow发现,原来是以为redis默认的序列化方式有问题,而且没有设定redistemplate的stringredistemplate子类导致的。修复代码如下:
@Configuration @EnableCaching public class CacheConfig extends CachingConfigurerSupport { @Bean public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); //定义key序列化方式 //RedisSerializer<String> redisSerializer = new StringRedisSerializer();//Long类型会出现异常信息;需要我们上面的自定义key生成策略,一般没必要 //定义value的序列化方式 Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); // template.setKeySerializer(redisSerializer); template.setValueSerializer(jackson2JsonRedisSerializer); template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } }
本站采用阿里云服务器,如果你也想使用阿里云服务器,可以点击领取代金券/优惠券
已有2位网友发表了看法:
发表评论