今天整合 spring-data-redis 到一个老的项目去(ssm, xml配置bean), 存储key的时候发现key乱码,
先看我的整合配置:
<!-- 用于数据交互 -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnFactory"/>
</bean>
网上查了一下,是因为 spring-data-redis 默认的序列化问题导致,所以解决方案如下:
1,增加以下两个bean的配置:
<!-- 自定义redis中key序列化方式 -->
<bean id="keySerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>
<!-- 自定义redis中value序列化方式 -->
<bean id="valueSerializer" class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer"></bean>
在 redisTemplate 里面增加序列化属性项,配置好如下:
<!-- 用于数据交互 -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnFactory"/>
<property name="keySerializer" ref="keySerializer"></property>
<property name="valueSerializer" ref="valueSerializer"></property>
<property name="hashKeySerializer" ref="keySerializer"></property>
<property name="hashValueSerializer" ref="valueSerializer"></property>
</bean>
重启之后再来看一下,
问题解决!