Redis學習07-Redis的過期策略

Redis 過期策略

什么是過期策略

Redis 的過期策略用于管理設置了過期時間(TTL)的鍵,確保在鍵過期后能夠被及時刪除,從而釋放內存

整體策略

Redis 采用的是定期刪除+惰性刪除的組合策略

1. 定期刪除

  • 原理:周期性的從過期鍵集合中抽取一部分鍵,驗證其過期時間,若已過期則刪除。
  • 頻率:默認每秒運行 10 次,即每 100ms 一次,可以通過修改配置更改頻率
  • 優點:主動清理過期鍵,避免內存浪費,同時這種方式能保證抽取檢查的過程足夠快,避免長時間阻塞
  • 缺點:占用一定的 CPU 資源

為什么定期刪除是周期性的抽取部分鍵?
因為redis是單線程的程序,主要的任務是處理每個命令的任務。
如果掃描過期key消耗的時間太多,就可能導致正常處理請求命令被阻塞(類似于在大量數據的背景下執行key *的效果)

2. 惰性刪除

  • 原理:當鍵到達過期時間時,并不會立即被刪除。而是當后續有請求訪問該鍵時,Redis 服務器才會觸發刪除操作,并返回 nil
  • 優點:節省 CPU 資源,只在必要時檢查。
  • 缺點:如果一個鍵已經過期并一直未被訪問,它會持續占用內存,造成內存資源浪費

其他補充策略

為了彌補定期刪除和惰性刪除的不足,Redis 還提供了一系列 內存淘汰策略,用于在內存不足時主動淘汰部分鍵,保障服務器的正常運行。

Redis 內置淘汰策略

策略淘汰范圍淘汰算法
noeviction無(默認策略)內存不足時寫入操作報錯
allkeys-lru所有鍵LRU
allkeys-random所有鍵隨機淘汰
volatile-lru設置過期時間的鍵LRU(最近最少使用)
volatile-random設置過期時間的鍵隨機淘汰
volatile-ttl設置過期時間的鍵優先淘汰較早過期的鍵(FIFO)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93446.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93446.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93446.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入解讀c++(命名空間)

目錄 1關于命名空間 1.1是什么 1.2解決了什么問題 2.命名空間的定義 2.2命名空間的嵌套定義 3命名空間的特點 3.1命名空間不會影響生命周期 3.2命名空間只能在全局域里定義,當然嵌套定義時例外。 3.3在不同文件中定義相同名稱的命名空間 4.命名空間的使用 …

ClickHouse高性能實時分析數據庫-高性能的模式設計

告別等待,秒級響應!這不只是教程,這是你駕馭PB級數據的超能力!我的ClickHouse視頻課,凝練十年實戰精華,從入門到精通,從單機到集群。點開它,讓數據處理速度快到飛起,讓你…

ArkTS懶加載LazyForEach的基本使用

在 ArkTS 的開發中,如果你要渲染一個很長的列表,比如商品列表、評論列表或者朋友圈動態,用傳統的循環結構(比如 ForEach)很容易導致性能問題,尤其是加載慢、卡頓甚至內存暴漲。 這時候就要用到 懶加載渲染組…

動態規劃:從入門到精通

本文全章節一共一萬七千多字,詳細介紹動態規劃基礎與進階技巧,全篇以代碼為主,認真讀完理解,你對動態規劃的理解一定會有一個質的飛躍。一、動態規劃簡介: 動態規劃(Dynamic Programming,簡稱DP&…

八股訓練營 40 天心得:一場結束,也是一場新的開始

八股訓練營 40 天心得:一場結束,也是一場新的開始 感謝卡哥的訓練營組織卡碼筆記,對即將參加秋招的我們幫助了很多,感謝卡哥的開源代碼隨想錄代碼隨想錄 四十天前,我帶著一顆不安卻堅定的心,踏入了這場“…

STM32系統定時器(SysTick)詳解:從原理到實戰的精確延時與任務調度

前言:為什么SysTick是嵌入式開發的"瑞士軍刀"? 在STM32開發中,我們經常需要精確的延時功能(如毫秒級延時控制LED閃爍)或周期性任務調度(如定時采集傳感器數據)。實現這些功能的方式有…

【微信小程序】12、生物認證能力

1、生物認證 生物認證 是一種基于個體獨特生理或行為特征進行身份驗證的技術,廣泛應用于安全、金融、醫療等領域。 小程序目前暫時只支持指紋識別認證。 2、查詢支持的生物認證方式 獲取本機支持的 SOTER 生物認證方式,文檔 onLoad(options) {wx.checkIsSuppor…

高級機器學習

機器學習常見方法涉及方法:2.半監督學習3.無監督學習4.度量學習5.遷移學習6.多示例多標記學習7.在線學習8.元學習9.聯邦學習10.強化學習11.概率圖模型獨立同分布獨立指的是,樣本集包括訓練集測試集的任意兩個樣本之間都是不相關的。在表示樣本的特征確定…

Chrome 提示 “此擴展程序不再受支持”(MacOS/Windows)

原因 最新 Chrome 使用 Manifest V3, 并在新版瀏覽器中 停止 V2 支持 處理方法 MacOS 新建一個后綴為 .mobileconfig 的文件, 內容參考 <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN&…

C++20協程實戰:高效網絡庫、手機終端、多媒體開發開發指南

基于C++協程和事件循環的網絡庫 以下是基于C++協程和事件循環的網絡庫實例,涵蓋常見場景和功能實現。示例基于libuv、Boost.Asio或自定義事件循環,結合C++20協程(如std::coroutine)或其他協程庫(如cppcoro)實現。 基礎TCP服務器 #include <cppcoro/task.hpp> #in…

數據庫4.0

索引 事務 JDBC~ 目錄 一、MySQL索引 1.0 概述 2.0 相關操作 3.0 注意 4.0 索引背后的原理的理解 二、 事務 1.0 原子性 2.0 隔離性 (1)并發執行 (2) 出現的問題 3.0 使用 三、JDBC編程 1.0 概述 2.0 如何下載驅動包 3.0 jar如何引入到項目之中 4.0 jdbc…

HarmonyOS-ArkUI Web控件基礎鋪墊6--TCP協議- 流量控制算法與擁塞控制算法

HarmonyOS-ArkUI Web控件基礎鋪墊1-HTTP協議-數據包內容-CSDN博客 HarmonyOS-ArkUI Web控件基礎鋪墊2-DNS解析-CSDN博客 HarmonyOS-ArkUI Web控件基礎鋪墊3--TCP協議- 從規則本質到三次握手-CSDN博客 HarmonyOS-ArkUI Web控件基礎鋪墊4--TCP協議- 斷聯-四次揮手解析-CSDN博客…

Dify 從入門到精通(2/100 篇):Dify 的核心組件 —— 從節點到 RAG 管道

Dify 的核心組件&#xff1a;從節點到 RAG 管道 引言 在 Dify 博客系列&#xff1a;從入門到精通&#xff08;100 篇&#xff09; 的第一篇《Dify 究竟是什么&#xff1f;真能開啟低代碼 AI 應用開發的未來&#xff1f;》中&#xff0c;我們全面介紹了 Dify 的定位、核心特點…

在線培訓、遠程示教——醫療器械行業的直播解決方案

文章目錄前言一、醫療器械直播應用的兩大核心場景二、直播平臺在醫療場景中的關鍵技術支持點三、典型功能實現原理總結前言 醫療器械行業對“培訓”和“示教”的專業性要求極高&#xff0c;傳統的線下模式常因時間、空間、人員成本等受限而效率低下。而隨著高清低延遲視頻技術…

Mqttnet的MqttClientTlsOptions.CertificateValidationHandler詳解

MqttClientTlsOptions.CertificateValidationHandler 是 MQTTnet 庫中用于自定義 TLS 證書驗證邏輯的關鍵回調函數。在 MQTT 客戶端與服務器建立 TLS 連接時&#xff0c;該回調允許你覆蓋默認的證書驗證流程&#xff0c;實現自定義的安全策略。核心作用當 MQTT 客戶端通過 TLS …

【圖像噪點消除】——圖像預處理(OpenCV)

目錄 1 均值濾波 2 方框濾波 3 高斯濾波 4 中值濾波 5 雙邊濾波 6 小結 噪聲&#xff1a;圖像中的一些干擾因素。通常是由于圖像采集設備、傳輸信道等因素造成的&#xff0c;表現為圖像中隨機的亮度。常見的噪聲類型有高斯噪聲和椒鹽噪聲。高斯噪聲是一種分布符合正態分布…

Vulnhub napping-1.0.1靶機滲透攻略詳解

一、下載靶機 下載地址&#xff1a;https://download.vulnhub.com/napping/napping-1.0.1.ova 下載好后使用VM打開&#xff0c;將網絡配置模式改為net&#xff0c;防止橋接其他主機干擾&#xff08;橋接Mac地址也可確定主機&#xff09;。 二、發現主機 使用nmap掃描沒有相應…

Kubernetes自動擴容方案

Kubernetes 自動擴容可以概括為 “三層六類”&#xff1a;層級類型觸發維度官方/社區方案一句話說明Pod 級HPACPU / 內存 / 自定義 / 外部指標內置副本數橫向擴縮&#xff0c;最常用VPACPU / 內存社區組件單 Pod 資源豎向擴縮&#xff0c;不改副本數KEDA任意事件&#xff08;隊…

linux命令ps的實際應用

ps&#xff08;Process Status&#xff09;是 ?Linux/Unix 系統中最核心的進程管理工具&#xff0c;用于實時抓取系統進程快照。它直接讀取 /proc 文件系統&#xff0c;不持續監控進程&#xff08;區別于 top&#xff09;&#xff0c;但可通過參數組合實現精準進程診斷。下面從…

深入理解C語言:詳解直接插入排序的實現與優化

目錄 引言 一、直接插入排序的相關概念 1.1、基本概念 1.2、直接插入排序過程詳解 二、代碼實現 三、時間復雜度 四、希爾排序 4.1、希爾排序的陳述 4.2、代碼實現 4.3、時間復雜度 結語 引言 在計算機科學的世界里&#xff0c;排序算法是基礎且重要的組成部分。它們…