环境、
springboot2
redis3.2.0
序列化方式使用JDK的序列化方式(不明白的可以看看我之前的博客)
应用场景:
集合均为ArryList<T>
1、存入集合A与集合B
2、获取集合A与集合B
3、获取后的集合A调用addAll存入集合B,将两个集合合并
报错信息:java.lang.UnsupportedOperationException
经验证,获取集合后两个集合进行Add时会报错,经研究猜测,其内部处理的时候是通过数组进行返回的,并转为了Array,而内部正好没有add方法导致的。查阅了部分资料,个人认为,序列化方式时选择json序列化数据的时候获取的集合为jsonArray,一样会报错。
解决方式,例子:
JSON topJson = (JSON) JSON.toJSON( jedisUtil.get(ICache.CACHE_RISK_GROUP_FIST + topGroup)); List<AifacePersonExtend> topJsonArr = JSONArray.parseArray(topJson.toJSONString(),AifacePersonExtend.class);
使用alibaba的fastjson进行转换即可,亲测可行。
另外一个报错信息:
org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: Command timed out after 10 second(s)
很简单,就是连接超时的,修改下配置,原来我设置的是10秒改为100秒就好了