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

原问题:

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

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

redis传递对象吗 redis对象存储方式_python

 

我来给你解释:

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