为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不用redis的hash来存储对象?

二进制序列化反序列化效率更高吗?

正在回答

1 回答

我来给你解释:

第一,通过jedis 储存对象有大概三种,one:本课程的序列化成byte字节 ,最终存byte字节,two:对象转hashmap,也就是你想表达的hash的形式,最终存map,three:对象转json,最终存json,其实也就是字符串

第二:其实如果你是平常的项目,并发不高,三个选择都可以,反而你说的hash的形式更加灵活,可以对象的单个属性,但是来了,秒杀的场景的情况下,三者的效率差别很大的

第三:结果如下

10w数据          时间    内存占用    

存json               10s        14M    

存byte               6s            6M    

存jsonMap      10s          20M    

存byteMap      4s             4M    

取json              7s         

取byte              4s         

取jsonmap      7s         

取bytemap      4s         

第四:你该说了,bytemap最快啊,为啥不用啊,因为作者用了超级强悍的序列化工具啊,以上测试基于java的序列化,如果改了序列化工具,你可以测试下。

因本人能力有限,以上可能有谬论,恳请指正

8 回复 有任何疑惑可以回复我~
#1

秋田君 提问者

ok 多谢
2017-08-30 回复 有任何疑惑可以回复我~
#2

qq_为了美好的明天

蒂花之秀
2017-12-25 回复 有任何疑惑可以回复我~
#3

魄弹兽

6666老哥可以加你好友吗
2018-05-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么不用redis的hash来存储对象?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信