命中:可以直接通過快取獲取資料。
不命中:無法直接通過快取獲取資料,需要再次查詢資料庫或其他操作。
如何檢視快取命中率
在redis中可以執行info
命令檢視redis服務的狀態資訊
127.0.0.1:6379>info
# Stats
keyspace_hits:90 # 查詢鍵命中的次數
keyspace_misses:10 # 查詢鍵未命中的次數
快取命中率 : 90/(90+10) = 90%。
影響快取命中率的幾個因素及優化思路
1.業務場景選擇
- 快取適合”讀多寫少“的業務場景,資料修改頻率較高的資料使用快取的意義不大,命中率會很低。
- 業務中對時效性要求越低的資料,越適合使用快取,快取時間也應更長。
2.快取的粒度
- 快取的粒度越小,命中率也會越高。(可拆出的資料,分開儲存)
3.快取過期策略
- 快取的更新策略也會直接影響到快取的命中率,通常直接更新快取值會比移除或過期快取命中率更高。
4. 快取容量
- 快取容量太小容易觸發快取淘汰機制。
- Redis中可用過
maxmemory
設定佔用的最大記憶體,也可通過增加叢集方式增加記憶體容量。
5. 其它因素
- 當快取節點發生故障時,要避免快取失效,並最大程度降低影響。
參考
本作品採用《CC 協議》,轉載必須註明作者和本文連結