Redis ④-通用命令

在這里插入圖片描述
Redis 是一個 客戶端-服務器 結構的程序,這與 MySQL 是類似的,這點需要牢記!!!
Redis 固然好,但也不是任何場景都適合使用 Redis,一定要根據當前的業務需求來選擇是否使用 Redis

Redis 通用命令

Redis 的命令有很多,借助官方文檔可以更快的找到自己想要的命令
Redis 命令參考

set get

set key value
get key

getset 是 Redis 最基本的命令,用于獲取和設置鍵值對。

如果鍵不存在,get 會返回 nilset 會創建一個新鍵。

What Is the Difference Between ‘Null’ and ‘Nil’
‘Null’ and ‘Nil’ are synonymous and both mean ‘zero’ or ‘nothing’ in value. The two words differ by what field we use them in. We use ‘Null’ mostly in maths, programming, business, and legal matters. On the other hand, we use ‘Nil’ in sports and games.
keyvalue 都是字符串類型,不需要加上引號,加上單引號和雙引號也不會報錯,但是不推薦。

Redis 的命令是不區分大小寫的,但是推薦使用小寫,因為更好看~~

keys

keys pattern

keys 命令用于獲取所有鍵的名稱。

pattern 表示匹配模式,Redis 官方提供了多種匹配模式,可以根據需要選擇:

h?llo matches hello, hallo and hxllo ? 匹配任何單個字符
h*llo matches hllo and heeeello *匹配任何數量的字符
h[ae]llo matches hello and hallo, but not hillo [ae] 只能匹配 a 和 e
h[^e]llo matches hallo, hbllo, … but not hello [^e] 匹配除了 e 之外的任何字符
h[a-b]llo matches hallo and hbllo, but not hello or hillo [a-b] 匹配 a 到 b 之間的任何字符
注意事項:
keys * 可以獲取所有鍵,但是不推薦使用,因為 Redis 使用的是單線程,如果數據庫里有大量的鍵,會導致查詢速度緩慢,從而影響其他客戶端的請求響應。

當使用 Redis 作為緩存數據庫(MySQL)時,若 Redis 服務器阻塞,則可能會導致全量數據庫的請求突增,導致數據庫崩潰。

exists

exists key [key...]

exists 命令用于判斷鍵是否存在。

返回值為 key 存在的個數,如果 key 不存在,則返回 0。

一次性可以查詢多個鍵是否存在。

如果有一次性查詢多個鍵的需求,也更推薦一次性查詢完所有需要查詢的。由于 Redis 客戶端 和 Redis 服務器之間是通過網絡通信的,每發起一次查詢都會構造一個請求,多次查詢會導致效率比較低。

del

del key [key...]

del 命令用于刪除鍵。

返回值為被刪除的 key 數量。

如果作為 緩存數據庫,可以使用 del 命令刪除一些沒用的鍵,因為數據還是存儲在全量數據庫里。

如果作為 全量數據庫,則不推薦使用 del 命令

如果作為消息隊列,則根據業務需求來看

expire

expire key seconds

expire 命令用于設置鍵的過期時間。

返回 1 表示設置成功,0 表示設置失敗。

pexpire

pexpire key milliseconds-timeout

pexpire 命令用于設置鍵的過期時間,單位是毫秒。

返回 1 表示設置成功,0 表示設置失敗。

ttl

ttl key

ttl 命令用于獲取鍵的剩余過期時間。

返回值是秒數,-1 表示沒有設置過期時間,-2 表示鍵不存在。

pttl

pttl key

pttl 命令用于獲取鍵的剩余過期時間,單位是毫秒。

返回值是毫秒數,-1 表示沒有設置過期時間,-2 表示鍵不存在。

type

type key

type 命令用于獲取改鍵對應的值的類型。

返回值可以是 string, list, set, zset, hash, stream…


Redis 鍵的過期策略

Redis 鍵的過期策略主要有兩種:

  • 定期刪除:Redis 會在一定時間內,抽取一部分鍵,查看其是否過期,如果過期,則刪除。由于 Redis 是單線程的,所以需要盡可能這個過程足夠快,不然會影響其他客戶端的請求響應。
  • 惰性刪除:Redis 不會主動刪除過期的鍵,而是客戶端每次獲取鍵時,檢查是否過期,如果過期,則刪除該鍵,同時返回一個 nil。

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

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

相關文章

HarmonyOs學習 環境配置后 實驗1:創建項目Hello World

HarmonyOS開發入門:環境配置與Hello World實驗 實驗目標 掌握HarmonyOS開發環境配置,創建首個HarmonyOS應用并實現"Hello World"界面展示 實驗準備 已安裝DevEco Studio開發環境已配置HarmonyOS開發依賴項熟悉基本TypeScript/ArkTS語法&am…

HTTP:十.cookie機制

Cookie概念及類型 HTTP cookie,簡稱cookie,又稱數碼存根、“網站/瀏覽+魔餅/魔片”等,是瀏覽網站時由網絡服務器創建并由網頁瀏覽器存放在用戶計算機或其他設備的小文本文件。Cookie使Web服務器能在用戶的設備存儲狀態信息(如添加到在線商店購物車中的商品)或跟蹤用戶…

記錄小程序第一次調用Api,基于騰訊云Serverless函數,實現小程序的成功接入api,以及數據調用

目錄 創建騰訊云個人賬戶新建severless應用建立函數URL小程序中調用api示例 創建騰訊云個人賬戶 百度搜索即可,并注冊 新建severless應用 作者以github下載的某Api為例,這里不展示具體Api,只關注操作即可,相信都是互通的 在騰…

ES6 第一講 變量定義 堆與棧 字符串的擴展和數值型的擴展

文章目錄 1.ES6變量定義2.ES6堆和棧3.字符串的擴展3.1 模板字符串3.2 判斷是否以指定的字符串開頭或結尾3.3 字符串重復輸出3.4 填充方法3.5 去除前后字符串空格3.6 返回參數指定位置的字符 4. 數值型的擴展4.1 二進制0B 八進制0O4.2 判斷是否是一個無窮大的數字 (判…

LeetCode第158題_用Read4讀取N個字符 II

LeetCode 第158題:用Read4讀取N個字符 II 題目描述 給你一個文件,并且該文件只能通過給定的 read4 方法來讀取,請實現一個方法來讀取 n 個字符。 read4 方法: API read4 可以從文件中讀取 4 個連續的字符,并且將它…

算法篇之單調棧

單調棧算法入門 單調棧是一種特殊的數據結構應用,它的核心在于維護一個棧,使得棧內元素保持單調遞增或者單調遞減的順序。這種數據結構在解決很多算法問題時非常有效,例如求數組中每個元素的下一個更大元素、每日溫度問題等。 一、單調棧的…

Kubernetes控制平面組件:調度器Scheduler(二)

云原生學習路線導航頁(持續更新中) kubernetes學習系列快捷鏈接 Kubernetes架構原則和對象設計(一)Kubernetes架構原則和對象設計(二)Kubernetes架構原則和對象設計(三)Kubernetes控…

【網絡】數據鏈路層知識梳理

全是通俗易懂的講解,如果你本節之前的知識都掌握清楚,那就速速來看我的筆記吧~ 自己寫自己的八股!讓未來的自己看懂! (全文手敲,受益良多) 數據鏈路層 我們來重新理解一下這個圖:…

機器學習(神經網絡基礎篇)——個人理解篇6(概念+代碼)

1 在聲明一個類中,構建一個屬于類的函數,前面為什要加上“self”? 就像下面這一串代碼: class TwoLayerNet:def __init__(self, input_size, hidden_size, output_size,weight_init_std0.01):# 初始化權重self.params {}self.p…

Cribl 對Windows-xml log 進行 -Removing filed-06

Removing Fields Description? The Eval Function can be used to add or remove fields. In this example we will remove the extracted fields while preserving _raw, _time,index,source, sourcetype. Steps - Adding an Eval Function

chili3d調試6 添加左側面板

注釋前 一個一個注釋看對應哪個窗口 無事發生 子方法不是顯示的窗口 注釋掉看看 沒了 注釋這個看看 零件頁面沒了 這個瀏覽器居然完全不用關的,刷新就重載了 注釋看看 無工具欄版本 sidebar: 往框框里面加入 div({ className: style.input }, user_…

Linux學習——了解和熟悉Linux系統的遠程終端登錄

Linux學習——了解和熟悉Linux系統的遠程終端登錄 一.配置Ubuntu系統的網絡和用戶 1、設置虛擬機網絡為橋接模式 打開VMWare,選擇編輯虛擬機設置,在網絡適配器設置中,選擇“橋接模式”,保存設置并啟動Ubuntu。 2、配置Ubuntu的…

【JAVA EE初階】多線程(1)

這樣的代碼,雖然也能打印hello thread,但是沒有創建新的線程,而是直接在main方法所在的主線程中執行了run的邏輯 start方法,是調用系統api,真正在操作系統內部創建一個線程。這個新的線程會以run作為入口方法&#xff…

javase 學習

一、Java 三大版本 javaSE 標準版 (桌面程序; 控制臺開發) javaME 嵌入式開發(手機、小家電)基本不用,已經淘汰了 javaEE E業級發開(web端、 服務器開發) 二、Jdk ,jre jvm 三…

【Linux】Linux 操作系統 - 05 , 軟件包管理器和 vim 編輯器的使用 !

文章目錄 前言一、軟件包管理器1 . 軟件安裝2 . 包管理器3 . Linux 生態 二、軟件安裝 、卸載三、vim 的使用1 . 什么是 vim ?2 . vim 多模式3 . 命令模式 - 命令4 . 底行模式 - 命令5. 插入模式6 . 替換模式7 . V-BLOCK 模式8 . 技巧補充 總結 前言 本篇筆者將會對軟件包管理…

python基礎知識點(1)

python語句 一行寫一條語句 一行內寫多行語句,使用分號分隔建議每行寫一句,且結束時不寫分號寫在[ ]、{ }內的跨行語句,被視為一行語句\ 是續行符,實現分行書寫功能 反斜杠表示下一行和本行是同一行 代碼塊與縮進 代碼塊復合語句&#xf…

C#/.NET/.NET Core技術前沿周刊 | 第 35 期(2025年4.14-4.20)

前言 C#/.NET/.NET Core技術前沿周刊,你的每周技術指南針!記錄、追蹤C#/.NET/.NET Core領域、生態的每周最新、最實用、最有價值的技術文章、社區動態、優質項目和學習資源等。讓你時刻站在技術前沿,助力技術成長與視野拓寬。 歡迎投稿、推薦…

HTML表單與數據驗證設計

HTML 表單與數據驗證設計:構建可靠的用戶數據采集系統 引言 互聯網的核心是數據交互,而HTML表單是這一交互的主要入口。作為前端工程師,設計高質量的表單不僅關乎用戶體驗,更直接影響數據收集的準確性和系統安全。 在我的學習實…

基于STM32的Keil環境搭建與點燈

本人使用的STM32開發板為正點原子的STM32F103ZE,在此記錄完整的搭建與點燈過程。 一、Keil的安裝與配置 安裝Keil 首先進入Keil下載官網:https://www.keil.com/download/product/ 點擊MDK-ARM,并填寫相關信息,之后開始下載最新版…

React-useRef

如果我們想在hooks里面獲同步取最新的值&#xff0c;那么則可以使用useRef, 關鍵源碼如下&#xff1a; function mountRef<T>(initialValue: T): {|current: T|} {const hook mountWorkInProgressHook();const ref {current: initialValue};hook.memoizedState ref;re…