redis的两种存储⽅式string和byte对⽐
fastjson字符串转数组redis环境:redis集(含哨兵模式,部在了两台Linux系统的机器上,每台机器四个节点,2主2备)
存储内容:Submit对象(公司代码⾥⾯的,对象⾥只有⼿机号码和短信内容不同,其他字段值都⼀样)
主要逻辑:存:⽣成submit对象-->对象转json/byte数组-->向redis存⼊json字符串/byte数组
取:根据key值(先设定好)从redis值-->转化为json/byte数组
其中,submit对象和json的转化是⽤的alibaba的fastjson,对⽐了⼏种jar,只有这个最快。项⽬中每个过程都是记录时间的,⽐如说最开始记录时间,⽣成完所有的submit对象,记录⼀次,转化成json字符串/byte数组,记录⼀次.....为的就是对⽐之后得出结论,能优化的优化,不能优化的看时间。
还有,由于组长说实际的环境上应该是redis集部在四台机器上,所以我把每个过程⽤四个线程来跑。然后所有的线程跑完后在⽤jedis.info(()来统计下每种存储⽅式存完数据机器内存的变化。
直接贴结果:
10w数据时间内存占⽤
存json10s14M
存byte 6s  6M
存jsonMap10s20M
存byteMap4s4M
取json7s
取byte4s
取jsonmap7s
取bytemap4s
最后的结果就是:10w数据的时候,submit转json的过程要⽐submit转byte数组慢了2-3s,存redis的时候⼜慢了2s;100w数据的时候,存string的⽅式直接3个线程挂了,存byte也挂了1个线程。综上来说,存byte的⽅式要优于存string。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。