tft每日頭條

 > 生活

 > 本地緩存有什麼優缺點

本地緩存有什麼優缺點

生活 更新时间:2024-07-30 01:16:34
背景

在業務開發過程中,對于數量較少且訪問頻繁的數據,需要使用本地緩存;對于本地緩存的失效策略,通常是超時被動失效;然後再次訪問時,通過回表,reload數據,将最新版本的數據更新至緩存中;

但是在某些場景下,需要主動刷新緩存中的内容(失效或者刷新),雖然我們可以通過設置較短的過期時間達到相同的目的,但是開銷相對較高;如何實現類似于分布式緩存監聽MQ消息,及時失效緩存呢?

類比分布式緩存的解決方案

在分布式緩存中,我們通常采用的是監聽消息隊列及時失效緩存;多實例服務的任一實例,監聽到消息後及時更新緩存,其他實例也能讀取到最新的數據;但是對于本地緩存就大不一樣,每個實例在自己的内存維護一份數據,當消息被其中一個實例消費後,就無法被其他實例感知到,所以需要解決一條消息如何被多實例消費的問題;

本地緩存有什麼優缺點(本地緩存的正确使用姿勢之主動更新)1

本地緩存主動失效策略 a

本地緩存有什麼優缺點(本地緩存的正确使用姿勢之主動更新)2

本地緩存主動失效策略 b

在這個方案中,存在兩種角色,本地緩存MQ适配器本地緩存MQ處理器

适配器:将MQ消息轉發成多實例消息,發送至處理器監聽的MQ中;

處理器:調用指定服務緩存更新接口,更新本地緩存;

這種方案存在的問題是

  1. 服務的實例可能發生宕機或者其他特殊情況,指定ip進行調用時可能出現調用失敗的情況,需要存在重試機制,保證服務重新連接後能正常更新緩存;
  2. 無論是策略a還是策略b都存在放大效應,M條消息最終會産生M*N次調用,同時本地緩存實現方需要實現特定的緩存失效接口,接入成本較高;
利用配置中心進行本地緩存的失效

鑒于上面的方案存在種種問題,所以需要采用一種更佳的方案,實現本地緩存的及時失效;目前市面上的配置中心都有推送的功能,對于配置發生變化時,可以及時地推送至所有實例中,因此,可以采用對配置中心指定key進行寫操作,然後監聽key進行緩存的失效;

本地緩存有什麼優缺點(本地緩存的正确使用姿勢之主動更新)3

讀寫配置中心失效本地緩存

該方案僅适用于支持推送的配置中心,對于隻支持定時拉取的配置中心,此方案的更新時間可能存在一定的延遲,效果未必優于定時任務主動失效緩存;

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved