java RedisTemplate操作redis后,想看一下是否成功,
就redis-cli执行:keys *
- “\xac\xed\x00\x05t\x00\x04name”
- “a”
- “siteName”
- “\xac\xed\x00\x05t\x00\bsiteName”
- “myCache::userName”
发现存储键值包含\xac\xed\x00\x05t\x00\特殊字符。
原因:RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化。
spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化。
public void afterPropertiesSet() {
super.afterPropertiesSet();
boolean defaultUsed = false;
if (defaultSerializer == null) {
defaultSerializer = new JdkSerializationRedisSerializer(
classLoader != null ? classLoader : this.getClass().getClassLoader());
}
if (enableDefaultSerializer) {
if (keySerializer == null) {
keySerializer = defaultSerializer;
defaultUsed =