您好,登錄后才能下訂單哦!
最近研究了下redis的協議、持久化策略以及單線程模型,突然覺得和java很搭配。源碼請用力戳這里
鑒于redis是c編寫,java的同學讀起來比較費力,所以寫java版。讓更多的開發者理解高性能設計的精髓,同時加深底層傳輸,存儲,索引的認知。
1. 兼容大多數redis原生協議
2. 兼容redis桌面客戶端0.9+
3. db分區隔離和事務機制
4. 高級特性:如阻塞隊列,發布訂閱
5. 數據持久采用jdk原生MappedByteBuffer同步刷盤(虛擬內存技術)
6. key,value存儲隔離,僅key空間占虛擬機內存,而value只在使用時才加載,所以優于redis
7. 兼容jedis,spring-data-redis,spring-boot-data等常用redis java客戶端工具
單機(4核8g),1000連接,隨機value set,tps大致在3W+
參考下圖,16379為jredis,7003為redis
默認8個分區,相當于8個db,數據在程序運行時同步寫入,重啟會自動讀取恢復數據到內存。
分為一個key區+三個value類型區,對應磁盤文件結構為:
key區加載所有值類型的key
value區僅加載同類型的值
線性存儲,自定義消息格式,消息定長,一個單元最大存儲1024字節,文件寫滿暫不支持動態擴容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。