关于jfinal redisplugin序列化的问题

callmeHEN 发布于 2015/09/11 09:06
阅读 678
收藏 1

昨晚用redisplugin,用工具查看,有乱码。还查了好一会。最后发现是fst序列化的问题。

关于redisplugin用fst转换值的原因是什么呢?我看到@JFinal在http://www.oschina.net/question/219875_245387说有权衡考虑,但是究竟是什么样的权衡啊,想知道。

因为我们还有.net的项目,会和java jfinal的项目有交集。涉及到redis存储就有差别了,我得有理由说服他们要和我们一样序列化存储才能保持项目互通。


谢谢
加载中
0
JFinal
JFinal

      简单说就是 redis 只支持 string与byte[] 类型的存储,而 java 有丰富的数据类型,为了让所有 java 类型都可以在 redis 存放,就需要将数据进行序列化,即将数据类型转成 byte[],相应地在取数据时需要进行反序列化对数据进行还原,类型与值都要还原出来。

    那么问题来了,当序列化采用算法 A ,而反序列化时采用了算法 B,那么反序列化后的数据就是错误的。

    楼主可能还有个疑惑:“即便其它类型需要序列化,但是 string 类型是 redis 直接支持的,就不必再转换了”。这是因为:当决定为部分数据类型进行序列化后,在从 redis 中读取数据时你还需要判断该数据是否应该被反序列化,是 string 则不应该被反序列化,是其它类型就需要,目前还没有做过这方面的尝试,下一版本会考虑将 string 类型分开处理。

0
如梦技术
如梦技术
fst是完全兼容JDK序列化协议的系列化框架,序列化速度大概是JDK的4-10倍,大小是JDK大小的1/3左右。
callmeHEN
callmeHEN
谢谢 我的意思是 为什么jfinal 要设计为序列化存储。而不直接存储为string
返回顶部
顶部