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

2022-06-30 03:36:10 字數 858 閱讀 8989

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

10s14m

存byte

6s  

6m存jsonmap

10s20m

存bytemap

4s4m

取json

7s取byte

4s取jsonmap

7s取bytemap

4s最後的結果就是:10w資料的時候,submit轉json的過程要比submit轉byte陣列慢了2-3s,存redis的時候又慢了2s;100w資料的時候,存string的方式直接3個執行緒掛了,存byte也掛了1個執行緒。綜上來說,存byte的方式要優於存string。

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

edis版本 2.9.1 redis環境 redis集群 含哨兵模式,部在了兩台linux系統的機器上,每台機器四個節點,2主2備 儲存內容 submit物件 公司 裡面的,物件裡只有手機號碼和簡訊內容不同,其他字段值都一樣 主要邏輯 存 生成submit物件 物件轉json byte陣列 向red...

redis的兩種安裝方式

root localhost wget o etc yum.repos.d epel.repo root localhost yum install redis 2 啟動服務,檢視服務狀態 root localhost systemctl start redis root localhost sys...

ubuntu安裝redis的兩種方式

wget tar xzf redis 2.8.17.tar.gz cd redis 2.8.17 make make完後 redis 2.8.17目錄下會出現編譯後的redis服務程式redis server,還有用於測試的客戶端程式redis cli,兩個程式位於安裝目錄 src 目錄下 下面啟動...