Redis——常用指令匯總指南(一)

目錄

1.set & get

①set指令

②get指令

2.keys

3.del

4.expire & setex & psetex

5.ttl

6.exists

7.setnx

8.flushall

?9.object encoding

10. type


1.set & get

????????set & get指令中key和value都是字符串,但是不需要加單引號或雙引號。

? ? ? ? 需要補充的是我們輸入的value對于redis服務器而言是字符串,但是在存儲時服務器會按內容找合適的類型存儲。比如說當value是hello時,redis直接按短字符串(embstr)存;而value是數字時,redis服務器會把字符串轉化為對應整數類型(int)存儲。

①set指令

????????set用于設置key和value對應關系。使用時一個key只能對應一個value,其用法如下:

set? key? value? [ex t | px t]? [nx | xx]?

????????舉例如下(未加可選字段):

????????可選字段中ex和px用于設置過期時間,類比expire指令;ex以秒為單位,px以毫秒為單位。?

?使用時操作如下:

????????可選字段nx代表當前數據庫中該key不存在時,可以設置該KV并返回1,若key已存在則不設置并返回0。xx與nx正相反,若數據庫中key存在則設置value并返回1,若key不存在則不設置并返回0。

????????簡單說就是nx用于創建KV,xx用于更新KV。舉例如下:

?????????當然,對同一個key進行多次set會更新對應value:

②get指令

????????get是根據key來獲取value。其用法如下:

get? key

????????返回:當KV映射關系存在時,自然是返回對應的value;當redis中沒有此映射時會返回nil,即空,可以類比C++中的NULL。需要注意的是,get要求value必須是string類型,否則報錯。

????????當存在對應KV映射時, 返回對應的value?:

????????當不存在對應KV映射時,返回nil:

????????當value非string類型時,報錯:?

2.keys

????????keys指令用于查詢key值,其使用方式如下:

keys? pattern

????????所謂pattern就是描述我想查詢的key是什么樣。如果是某個具體的key,那直接傳名字就好;如果是范圍查詢,那就通過通配符進行模糊匹配。

常見的通配符如下:

通配符含義使用方式可匹配示例
?匹配任意一個或零個字符keys? ?ap?leapple? aple
*匹配任意多個字符keys? ?a*leapaale apable
[^ae]排除字符a和ekeys? ?ap[^p]leaple apple
[a-e]匹配a到e范圍內的任意一個字符keys? ?ap[a-z]leapale apele
[acexz]只能匹配acexz中任意一個字符keys? ?ap[puqt]leapple? app

示例如下:?

????????這里我們需要重點強調一下,keys * 操作可以查詢當前Redis中所有的key,但是,在實際工作中,keys *極其危險。因為這是一個o(n)的操作,而Redis是一個單線程服務器,所以當Redis中有大量的key時,進行全局查詢勢必會消耗大量時間,影響其他客戶端的操作請求,尤其是在生產環境中,這可能造成災難性的后果。比如說,當進行keys *操作后,其他客戶端隨后訪問Redis而發生超時,那么就會直接訪問mysql,但mysql運載能力有限,若訪問量太大很有可能直接就崩了。

3.del

? ? ? ? del指令用于刪除指定的KV鍵值對。在使用時可以一次性刪除多個key。

del? key1? key2? ...

? ? ? ?返回值是本次操作所刪key的個數。

????????對于del需要說明的是,相比于mysql數據庫,對Redis中的數據發生del誤操作的后果并沒有那么重,因為Redis可以理解為是mysql中部分數據在內存中的拷貝,只要“根基”還在就能恢復。當然,對任何數據庫中數據進行刪除都應三思后行。

4.expire & setex & psetex

? ? ? ? ①expire指令用于設置特定key的過期時間。設置成功返回,失敗返回0.

? ? ? ? ②setex指令是在設置KV時直接指定過期時間(秒為單位)。類比set的ex可選字段。

? ? ? ? ③psetex指令與setex相同,但過期時間以毫秒為單位。

expire? key? time

setex? key? time? vlaue? ?#一定要注意time 在前value在后

psetex? key? time??value

????????使用示例如下:?

? ? ? ? ?相比而言,setex和psetex用于既需要更新過期時間又需要更新(或創建KV)value的場景,而expire用于更新過期時間但不需要更新value的場景。

5.ttl

? ? ? ? ttl指令用于查詢特定key的過期時間。

? ? ? ? 返回值有三種類型,返回0及以上正數代表剩余時間,返回-2代表已經過期,返回-1代表所查詢的key沒有設置過期時間。

ttl? key

? ? ? ? 使用示例如下:

6.exists

? ? ? ? exists指令用于查詢key在數據庫中是否存在,查詢的時間復雜度是o(1)。該指令支持批量查詢,可一次性查詢多個key。其返回值是所查詢到存在的key的數量。

exists? key1? key2? ...

? ? ? ? 使用示例如下:?

7.setnx

? ? ? ? setnx指令即set指令+可選字段nx,用于確保所設置的KV在指令之前不存在。

? ? ? ? 當setnx執行成功時會返回1,失敗則返回0。

setnx? key? value

使用示例如下:
?

8.flushall

flushall指令一鍵刪除所有鍵值對。用前三思哦~

flushall?

?9.object encoding

該指令用于查詢value的編碼方式。(而非類型,類型用type查)

object encoding?key

使用示例如下:?

10. type

用于查詢value的類型。

type? key

使用示例如下:?


如有錯誤,敬請斧正?

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

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

相關文章

PDF處理控件Aspose.PDF教程:在 Java 中刪除 PDF 頁面

您是否需要使用 Java 從PDF文檔中刪除特定頁面?無論您是要清理空白頁、刪除機密部分,還是僅僅在分發前調整內容,以編程方式操作 PDF 頁面的能力都將大有裨益。本指南將向您展示如何借助Aspose.PDF僅用幾行代碼刪除不需要的頁面。讓我們深入了…

RediSearch 字段類型與配置選項

1. 數值字段(NUMERIC) 用途:存儲整數或浮點數,可進行范圍查詢與排序。 選項: SORTABLE:允許用 SORTBY 排序NOINDEX:不參與索引,僅供返回 定義語法 FT.CREATE idx ON HASH PREFIX…

PHP Yii2 安裝SQL Server擴展-MAC M4 Pro芯片

MAC M4 Pro芯片版本,千錘百煉編譯十幾次終于成功 # 設置基礎鏡像并強制使用 x86_64 架構(適配 M4 芯片) FROM --platformlinux/amd64 php:8.1-fpm-alpine3.18WORKDIR /var/www/html# 可選:設置時區 ARG TZAsia/Shanghai ENV TZ${…

HTML初學者第二天

<1>HTML的語法規范 1.1標簽 -雙標簽&#xff1a;如 <html></html> 前面的叫開始標簽&#xff0c;后面的叫結束標簽。 -單標簽&#xff1a;如 <br /> 1.2基本語法概述 -HTML標簽是由尖括號包圍的關鍵詞&#xff0c;例如<html>。 -HTML標…

【加解密與C】HASH系列(二) SHA

SHA&#xff08;安全散列算法&#xff09;簡介 SHA&#xff08;Secure Hash Algorithm&#xff09;是由美國國家安全局&#xff08;NSA&#xff09;設計的一系列密碼散列函數&#xff0c;用于將任意長度的數據轉換為固定長度的散列值。SHA家族包括SHA-1、SHA-2&#xff08;含S…

【Python】進階 - 數據結構與算法

系列篇章&#x1f389; No.文章1【Python】基礎知識&#xff08;詳細&#xff09;&#x1f680;2【Python】基礎 - 循環、容器類型&#x1f680;3【Python】基礎 - 推導式、函數&#x1f680;4【Python】基礎 - 文件、異常、模塊&#x1f680;5【Python】進階 - 面向對象&…

【如何實現分布式壓測中間件】

分布式壓測中間件的原理及其實現 原理全鏈路追蹤框架&#xff08;Trace&#xff09;MQ中間件數據庫分布式緩存中間件&#xff08;Redis&#xff09;分庫分表中間件 原理 通過大量閱讀中間件源碼&#xff0c;開源社區調研&#xff0c;得到設計原理&#xff1a; &#xff08;1&a…

Qt進程間保活方案:詳解如何實現進程間通信與自動保活機制

目錄 摘要 一、進程間保活的基本原理 二、具體步驟及代碼示例 三、常見問題與優化 四、總體方案 摘要 在一些需要長時間運行的應用程序中&#xff0c;確保進程在意外退出時能夠自動重啟是一項非常重要的任務。尤其是在嵌入式開發、后臺服務以及需要高可用性的場景下&#x…

Python-內置數據結構-list-tuple-bubble-字符串-bytes-bytesarray-切片-學習筆記

欠4年前自己的一份筆記&#xff0c;獻給今后的自己。 分類 數值型 int、float、complex、bool 序列對象 字符串 str 列表 list tuple 鍵值對 集合set 字典dict 數值型 int、float、complex、bool都是class&#x…

利用事務鉤子函數解決業務異步發送問題

利用事務鉤子函數解決業務異步發送問題 一、問題背景二、實現方案1、生產者代碼2、消費者代碼 三、測試與驗證1、未開啟事務場景2、開啟事務場景 四、項目結構及源碼 一、問題背景 在某項業務中&#xff0c;需要在事務完成后&#xff0c;寫入日志到某數據庫中。需要要么都成功&…

uniapp選擇相冊

概述 一款針對Android平臺下的圖片選擇器&#xff0c;支持從相冊獲取圖片、視頻、音頻&拍照&#xff0c;支持裁剪(單圖or多圖裁剪)、壓縮、主題自定義配置等功能&#xff0c;支持動態獲取權限&適配Android 5.0系統的開源圖片選擇框架。 支持Uniapp和Uniapp X下的Vue2、…

MAC 多應用切換技巧,單應用切換技巧

在 Mac 上&#xff0c;有幾種快捷鍵可以幫助你快速切換應用程序窗口&#xff1a; 1. Command (?) Tab - 這是最常用的快捷鍵&#xff0c;用于在打開的應用程序之間進行循環切換。按住 Command 鍵不放&#xff0c;然后反復按下 Tab 鍵可以選擇下一個應用程序。當你松開 Comm…

SpringBoot+本地部署大模型實現知識庫功能

SpringBoot本地部署大模型實現RAG知識庫功能 1、Linux系統部署本地大模型1.1 安裝ollama1.2 啟動ollama1.3 下載deepseek模型 2、Springboot代碼調用本地模型實現基礎問答功能3、集成向量數據庫4、知識庫數據喂取5、最終實現RAG知識庫功能 1、Linux系統部署本地大模型 1.1 安裝…

嵌入式原理與應用篇---ARM

ARM 架構的 STM32 系列微控制器廣泛應用于嵌入式系統開發&#xff0c;理解其匯編語言指令對于優化性能、訪問硬件底層非常重要。下面詳細解釋常見的 ARM 匯編指令及其使用實例。 數據處理指令 1. MOV&#xff08;移動&#xff09; 功能&#xff1a;將立即數或寄存器值復制到…

【RHCSA-Linux考試題目筆記(自用)】servera的題目

一、開始 1、啟動rhcsa環境 2、點擊題目&#xff0c;看題 3、通過控制器來啟動所有虛擬機 控制器 打開后點start&#xff0c;然后ok 之后進入一個有classroom、servera、serverb&#xff08;考試不一定叫這些名&#xff0c;但大差不差&#xff09;什么之類的界面&#xff0c;…

SpringBoot項目使用arthas-tunnel-server

參考官網Arthas Spring Boot Starter | arthas Spring Boot系列之使用Arthas Tunnel Server 進行遠程調試實踐-騰訊云開發者社區-騰訊云 springBoot項目, 增加maven依賴 <dependency><groupId>com.taobao.arthas</groupId><artifactId>arthas-sprin…

Modbus TCP 進階:基于以太網的遠程設備控制(二)

基于 Modbus TCP 的遠程設備控制實戰 &#xff08;一&#xff09;硬件與網絡搭建實操 1. 設備選型與連接 在工業現場&#xff0c;根據遠程控制需求進行設備選型至關重要 。對于傳感器&#xff0c;若要監測溫度&#xff0c;可選擇高精度的熱電偶傳感器&#xff0c;如 K 型熱電…

分庫分表之實戰-sharding-JDBC

大家好&#xff0c;我是工藤學編程 &#x1f989;一個正在努力學習的小博主&#xff0c;期待你的關注實戰代碼系列最新文章&#x1f609;C實現圖書管理系統&#xff08;Qt C GUI界面版&#xff09;SpringBoot實戰系列&#x1f437;【SpringBoot實戰系列】Sharding-Jdbc實現分庫…

httpcore-nio引起的線程、fd泄露問題

依賴來源&#xff1a;httpasyncclient-4.1.4.jar 現象 程序報錯too many open files 線程數飆升、句柄數飆升 thread dump顯示大量 "I/O dispatcher 7215" #9102 prio5 os_prio0 tid0x00002b7ba036a800 nid0x6f24 runnable [0x00002b7d98d41000]java.lang.Thread.…

多線程生產者消費者模型實戰案例

多線程生產者消費者模型實戰案例 前言業務場景術前準備無鎖無事務有事務 synchronized事務在鎖外事務在鎖內 數據庫行鎖什么是數據庫行鎖有事務沒有事務 樂觀鎖ReentrantLock分布式鎖 前言 曾經一直有一個疑惑&#xff0c;就是關于多線程生產者消費者模型的學習過程中&#xf…