參考地址:https://gitee.com/ld/J2Cache/tree/master
一、概念
內存緩存:數據緩存在物理機的內存里面,速度快,進程內可用。常見的Ehcache、caffeine
集中式緩存:統一的一個地方存儲,可以為多節點提供服務。常見的 Redis、memcached
二、概述
J2Cache不是一個緩存框架,而是一個緩存框架的橋梁。通過兩級緩存(內存緩存框架作為一級緩存,集中緩存框架作為二級緩存),降低二級緩存的訪問次數,避免二級緩存I/O 的瓶頸。
兩級緩存數據的讀取策略,讀取順序為一級緩存、二級緩存、數據庫,如果獲取到數據,就不往下獲取。
J2Cache適用於多節點服務部署,單節點也可用。多節點建數據同步方案有四個,Redis 的Pub/Sub (消息訂閱)、 JGroup 、 RocketMQ 、 RabbitMQ。當某個節點的緩存數據需要更新時,會通知集群內的其余節點。其它節點收到通知后,會清掉以及緩存,重新從redis讀取最新的數據
三、實現
1、下載
四、常見問題
1、緩存的有效期
J2Cache通過設置Region來定義緩存的有效期,詳細參考 https://my.oschina.net/javayou/blog/3031773