Redis获取缓存异常:redis java.util.ArrayList cannot be cast to java.lang.String
Redis 获取缓存异常:redis java.util.ArrayList cannot be cast to java.lang.String
在使用 redis 缓存数据时,增加一个配置类,修改 key 序列化器为 string
@Configuration
public class RedisConfig {
<span class="hljs-meta">@Bean</span>
<span class="hljs-keyword">public</span> <span class="hljs-title class_">RedisTemplate</span><<span class="hljs-title class_">Object</span>, <span class="hljs-title class_">Object</span>> <span class="hljs-title function_">redisTemplate</span>(<span class="hljs-params">RedisConnectionFactory redisConnectionFactory</span>) {
<span class="hljs-title class_">RedisTemplate</span><<span class="hljs-title class_">Object</span>, <span class="hljs-title class_">Object</span>> template = <span class="hljs-keyword">new</span> <span class="hljs-title class_">RedisTemplate</span>();
<span class="hljs-comment">//修改key的序列化器</span>
template.<span class="hljs-title function_">setKeySerializer</span>(<span class="hljs-keyword">new</span> <span class="hljs-title class_">StringRedisSerializer</span>());
template.<span class="hljs-title function_">setHashKeySerializer</span>(<span class="hljs-keyword">new</span> <span class="hljs-title class_">StringRedisSerializer</span>());
template.<span class="hljs-title function_">setConnectionFactory</span>(redisConnectionFactory);
<span class="hljs-keyword">return</span> template;
}
}
若此时序列化 redis 中的 value 序列化为 string,但是存储的数据类型为 ArrayLsit 等一系列对象时,运行时控制台就会报错 java.lang.ClassCastException