Redis Spring操作Redis时,发现key值出现 \xac\xed\x00\x05t\x00\tb

来源:互联网 发布:2017网络情歌对唱 编辑:程序博客网 时间:2024/05/18 00:26

因为spring操作redis是在jedis客户端基础上进行的,而jedis客户端与redis交互的时候协议中定义是用byte类型交互,jedis中提供了string类型转为byte[]类型,但是看到spring-data-redis中RedisTemplate<K, V>在操作的时候k,v是泛型的,所以RedisTemplate中有了上面那段代码,在没有特殊定义的情况下,spring默认采用defaultSerializer = new JdkSerializationRedisSerializer();来对key,value进行序列化操作,在经过查看JdkSerializationRedisSerializer中对序列化的一系列操作

解决方法:

在配置时手动定义序列化的方法

 <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">        <property name="connectionFactory" ref="jedisConnectionFactory"/>        <property name="keySerializer">            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>        </property>        <property name="valueSerializer">            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>        </property>        <property name="hashKeySerializer">            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>        </property>        <property name="hashValueSerializer">            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>        </property>    </bean>
0 0
原创粉丝点击