redis的兩種存儲方式string和byte對比


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數據 時間 內存占用
存json 10s 14M
存byte  6s   6M
存jsonMap 10s 20M
存byteMap 4s 4M
取json 7s  
取byte 4s  
取jsonmap 7s  
取bytemap 4s  

最后的結果就是:10w數據的時候,submit轉json的過程要比submit轉byte數組慢了2-3s,存redis的時候又慢了2s;100w數據的時候,存string的方式直接3個線程掛了,存byte也掛了1個線程。綜上來說,存byte的方式要優於存string。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM