memcached subList序列化问题
Posted 初开之道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了memcached subList序列化问题相关的知识,希望对你有一定的参考价值。
某个业务场景需要将list超过10个元素时截取前10个然后再丢memcached缓存,因此写了这么一行代码
if(list.size()>10){
list=list.subList(0, 10);
}
cache.put(key,list)
然而put返回了false,于是怀疑是序列化问题。
做了下如下测试
System.out.println(list instanceof Serializable);
System.out.println(list.subList(0, 10) instanceof Serializable);
//返回如下
true
false
也就是说sublist没有实现序列化,查看源码发现果真如此,因此不能直接将subList返回结果直接丢缓存。
只能重新封装下
cache.put(key,new LinkedList(cache.put(key,list)))
作者:chulung
原文链接:https://chulung.com/article/65
本文由MetaCLBlog于2017-02-11 09:00:02自动同步至cnblogs
false以上是关于memcached subList序列化问题的主要内容,如果未能解决你的问题,请参考以下文章
源代码剖析tornado-memcached-sessions —— Tornado session 支持的实现
Android Parcelable反序列化报错笔记:java.lang.RuntimeException: Unmarshalling unknown type code at offset(代码片