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 目錄下 下面啟動...