产生原因:jedis做缓存时,没有对key进行序列化,导致jedis保存的key实际为\xac\xed\x00\05t\x00\x05Key,这个 key可在redis客户端中用keys *命令查看
解决办法:jedis做缓存时,对key进行序列化,在srping-data-redis包下,有4个类专门提供对
key,value,hashKey,hashValue进行序列化,如下:
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<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>
此问题针对key的序列化,则用keySerializer,hashKeySerializer1.
本文介绍了解决Jedis缓存时遇到的Key序列化问题,通过配置Spring Data Redis模板实现正确的Key序列化,确保了缓存操作的一致性和正确性。
2378





