<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了Redis快取更新策略的具體程式碼,供大家參考,具體內容如下
思考:在生產環境的 redis 經常會丟掉一些資料,寫進去了,過一會兒可能就沒了。是什麼原因?
Redis 快取通常都是全記憶體,記憶體是很寶貴而且是有限的,磁碟是廉價而且是大量的。可能一臺機器就幾十個 G 的記憶體,但是可以有幾個 T 的硬碟空間。Redis 主要是基於記憶體來進行高效能、高並行的讀寫操作。那既然記憶體是有限,比如 redis 就只能用 10G,你要是往裡面寫了 20G 的資料,會咋辦?當然會幹掉 10G 的資料,然後就保留 10G 的資料了。那幹掉哪些資料?保留哪些資料?當然是幹掉不常用的資料,保留常用的資料了。資料明明過期了,怎麼還佔用著記憶體?這是由 redis 的過期策略來決定。
在Redis中,當所用記憶體達到maxmemory上限(used_memory>maxmemory)時會觸發相應的溢位控制策略。具體策略受maxmemory-policy引數控制。
Redis支援6種策略:
LRU :Least Recently Used ,最近最少使用的,快取的元素有一個時間戳,當快取容量滿了,而又需要騰出地方來快取新的元素的時候,那麼現有快取元素中時間戳離當前時間最遠的元素將被清出快取。
記憶體溢位控制策略可以採用config set maxmemory-policy{policy}動態設定。寫命令導致當記憶體溢位時會頻繁執行回收記憶體成本很高,在主從複製架構中,回收記憶體操作對應的刪除命令會同步到從節點來,來保障主從節點資料一致性,從而導致寫放大的問題。
Redis 伺服器端採用的 過期策略是 : 惰性刪除 + 定期刪除
惰性刪除:
Redis的每個庫都有一個過期字典,過期字典中儲存所有key的過期時間。當用戶端讀取一個key時會先到過期字典內查詢key是否已經過期,如果key已經超過,會執行刪除操作並返回空。這種策略是出於節省CPU成本考慮,但是單獨用這種方式存在記憶體洩露的問題,當過期鍵一直沒有存取將無法得到及時刪除,從而導致記憶體不能及時釋放。
定時刪除:
Redis內部維護一個定時任務,預設每秒執行10次過期掃描(通過 redis.conf 中通過 hz 設定 修改執行次數),掃描並不是遍歷過期字典中的所有鍵,而是採用了自適應演演算法,根據鍵的過期比例、使用快慢兩種速率模式回收鍵:
1.從過期字典中隨機取出 20 個鍵
2.刪除這 20 個鍵中過期的鍵
3.如果過期鍵的比例超過 25% ,重複步驟 1 和 2
為了保證掃描不會出現迴圈過度,一直在執行定時刪除定時任務無法對外提供服務,導致執行緒卡死現象,還增加了掃描時間的上限,預設是 25 毫秒(即預設在慢模式下,25毫秒還未執行完,切換為塊模式,模式下超時時間為1毫秒且2秒內只能執行1次,當慢模式執行完畢正常退出,會重新切回快模式)
1.應用程式先從cache取資料,沒有得到,則從資料庫中取資料,成功後,放到快取中。
2.先刪除快取,再更新資料庫:這個操作有一個比較大的問題,更新資料的請求在對快取刪除完之後,又收到一個讀請求,這個時候由於快取被刪除所以直接會讀庫,讀操作的資料是老的並且會被載入進入快取當中,後續讀請求全部存取的老資料。
3.先更新資料庫,再刪除快取(推薦)為什麼不是寫完資料庫後更新快取?主要是怕兩個並行的寫操作導致髒資料。
快取全部資料比部分資料更加通用,但從實際經驗看,很長時間內應用只需要幾個重要的屬性。
快取全部資料要比部分資料佔用更多的空間,存在以下問題:
全部資料的優勢更加明顯,而部分資料一旦要加新欄位需要修改業務程式碼,而且修改後通常還需要重新整理快取資料。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45