緩存系列--緩存策略

緩存策略主要三方面:

  • 緩存什麼內容;
    這是根據業務決定的,通常是把經常訪問的,並且很少被改變的放入緩存。

  • 何時進行緩存;

    一般有這麼幾種方式:①程序啓動時就放入緩存,常見的代碼表
    ②用戶登陸進行緩存,一般是權限信息③第一次訪問放入緩存,一般是寫業務數據常被訪問④新增的時候放入緩存。有時候防止表單重複提交,保證冪等性會往緩存中存token。提交操作之後就刪除,再次提交就保證冪等性。或者扣款防止重複扣款,分佈式的時候通常放在緩存中。

  • 當緩存空間已滿時如何進行替換,即緩存替換算法
    一般常見的緩存替換法有:

    FIFO:先進先出隊列,根據緩存生成的順序。
    MySQL的 query cache,採用的就是這種簡單的緩存更新策略

    LRU:最近最少使用,會把最近最少使用的淘汰掉。實際上是維護了一個隊列存放,根據最近最少使用存放,每次被使用,把最近被使用的放到隊列頭部。
    對於一些時效性的信息可以使用這種,比如當前熱點信息。

    LFU:最近最常使用,根據使用的頻率進行淘汰。
    這種對於一些熱點信息不友好,當前使用較多,過期之後雖然在緩存前面拍着但是並不被訪問。

    LRFU:兼顧使用頻率與使用的時間的策略。
    可以自己調整。

memcached 的緩存更新策略是LRU算法,默認就是,無法選擇。
ehcache 的緩存策略可以自己選擇配置。
redis的緩存更新策略較爲豐富,有三種,需要自己配置。

發佈了42 篇原創文章 · 獲贊 7 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章