redis中几种数据存储方式的比较

这是慕课网一门课程的提问,有一个回答很不错,我就摘抄过来了。链接

原问题:

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

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

25155046_NnpC.jpg

 

我来给你解释:

第一,通过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的序列化,如果改了序列化工具,你可以测试下。

转载于:https://my.oschina.net/zjllovecode/blog/1594617

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值