Redis——通用命令介紹

Redis官方文檔

redis官方文檔

核心命令

set

將key和value存儲到Redis中,key和value都是字符串

set key value

在這里插入圖片描述
Redis中不區分大小寫,字符串類型也不需要添加單引號或者雙引號

get

根據key讀取value,如果當前key不存在,則返回nil(等同于NULL)

get key

在這里插入圖片描述

全局命令

Redis中有多種數據結構——字符串,哈希表,列表,集合,有序集合,不同的命令操作不同的數據結構。而全局命令可以操作任意一個數據結構

keys

通過通配符描述key的模樣,匹配上的key就會查詢出來,時間復雜度為O(n)

keys pattern

其中的pattern就是包含特殊符號的字符串

通配符作用
匹配任意一個字符
*匹配0個或多個任意字符
[a,b,c,d]匹配a,b,c,d中的字符,其他的不可以
[^a]只有a不能被匹配
[a-z]匹配a-z之間的任意字符,包含a和z

在這里插入圖片描述

*

在這里插入圖片描述

[a,b,c]

在這里插入圖片描述

[^a]

在這里插入圖片描述

[a-z]

在這里插入圖片描述

exists

判斷key是否存在,返回key存在的個數,時間復雜度為O(N),N是檢查key的個數

exists key [key ...]

在這里插入圖片描述
之所以要同時判斷多個key是否存在,是因為Redis是一個客戶端,服務器結構的程序,其交流通過網絡通信。而網絡通信的效率是很慢的,需要經過層層封裝和分用。因此Redis中的很多命令都支持多個key同時操作

del

刪除指定的key,返回刪除成功的key的個數,語法和exists類似,可以刪除一個或多個key

del key [key ...]

在這里插入圖片描述

expire

給指定的key設置過期時間(key的存活時間超過這個指定的時間就會自動刪除),單位是秒,需要注意的是,設定的key必須存在

返回值:設置成功返回1,設置失敗返回0

expire key seconds

如果想要設置精確值更小的過期時間,可以使用pexpire,單位是毫秒
在這里插入圖片描述

ttl

查詢當前key剩余的過期時間,單位是秒

返回值:剩余的過期時間, -1:沒有關聯過期時間,-2:key不存在

ttl key

同樣,要有pttl命令,單位是毫秒
在這里插入圖片描述
ip協議的報頭中也有一個ttl字段,代表過期時間,單位是次數

Redis的key過期策略

Redis中存儲了大量的key,那么他是如何知道哪些key已經過期了要被刪除,哪些key還沒過期呢?

顯然,一次次遍歷所有的key,確定key是否過期,效率非常慢,并且占用系統的資源

在Redis中,主要采用了下面兩種策略

  1. 定期刪除:每次抽取一部分,驗證過期時間,并且需要保證這個過程足夠快(Redis是單線程的程序,刪除操作不能阻塞正常的處理請求命令)
  2. 惰性刪除:key雖然到達了過期時間,但是還沒刪除,后面一次訪問用到了這個key,Redis會先觸發刪除這個key的操作,然后返回nil

其實,Redis可以基于優先級隊列或者時間輪實現一個定時器,來清理過期的key,但是Redis并沒有采取這種措施,因為定時器的實現需要引入多線程,而Redis作者早期就奠定了單線程的基調

type

返回key對應的value的數據類型

例如:none,string,list,set,zset,hash,stream

type key

在這里插入圖片描述

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

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

相關文章

Offset Explorer

Offset Explorer 簡介下載安裝 簡介 Offset Explorer(以前稱為Kafka Tool)是一個用于管理和使Apache Kafka 集群的GUI應用程序。它提供了一個直觀的UI,允許人們快速查看Kafka集群中的對象以及存儲在集群主題中的消息。它包含面向開發人員和管…

RANSAC算法

RANSAC簡介 RANSAC(RAndom SAmple Consensus,隨機采樣一致)算法是從一組含有“外點”(outliers)的數據中正確估計數學模型參數的迭代算法。 “外點”一般指的的數據中的噪聲,比如說匹配中的誤匹配和估計曲線中的離群點。所以,RANSAC也是一種“外點”檢…

若依-plus-vue啟動顯示Redis連接錯誤

用的Redis是windows版本,6.2.6 報錯的主要信息如下: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method redisson threw exception; nested exception is org.redisson.client.RedisConnectionException: Unable to connect t…

基于epoll的TCP服務器端(C++)

網絡編程——C實現socket通信(TCP)高并發之epoll模式_tcp通信c 多客戶端epoll_n大橘為重n的博客-CSDN博客 網絡編程——C實現socket通信(TCP)高并發之select模式_n大橘為重n的博客-CSDN博客 server.cpp #include <stdio.h> #include <sys/types.h> #include <…

Coin Change

一、題目 Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. We want to make changes with these coins for a given amount of money. For example, if we have 11 cents, then we can make changes with one 10-cent coin and one 1-c…

springboot工程使用阿里云OSS傳輸文件

在application.yml文件中引入對應的配置&#xff0c;一個是對應的節點&#xff0c;兩個是密鑰和賬號&#xff0c;還有一個是對應文件的名稱&#xff1b; 采用這樣方式進行解耦&#xff0c;便于后期修改。 然后需要設置一個properties類&#xff0c;去讀對應的配置信息 用到了…

MySQL Linux自建環境備份至遠端服務器自定義保留天數

環境準備 linux下安裝mysql請看 Linux環境安裝單節點mysql8.0.16 系統版本: CentOS 7 軟件版本: mysql8.0.16 備份策略與實現方法 此次備份依賴mysql自帶命令mysqldump與linux下crontab命令(定時任務) mysqldump mysqldump客戶實用程序執行 邏輯備份,產生一組能夠被執行…

為什么需要知識圖譜,如何構建它?

從關系數據庫遷移到圖形數據庫的指南 跟隨 發表于 邁向數據科學 7 分鐘閱讀 4天前 154 4 一、說明 TLDR&#xff1a;知識圖譜在圖數據庫中組織事件、人員、資源和文檔&#xff0c;以進行高級分析。本文將解釋知識圖譜的用途&#xff0c;并向您展示如何將關系數據模型轉換為圖…

HTTP協議的發展過程

前言 HTTP協議是一種用于在網絡上傳輸信息的應用層協議&#xff0c;它為萬維網的運作提供了基礎。 最早的版本是HTTP/0.9&#xff0c;它是HTTP協議的第一個版本&#xff0c;誕生于1991年&#xff0c;其設計初衷是為了在計算機之間傳輸簡單的超文本文檔&#xff0c;即HTML。 在…

在Java中對XML的簡單應用

XML 數據傳輸格式1 XML 概述1.1 什么是 XML1.2 XML 與 HTML 的主要差異1.3 XML 不是對 HTML 的替代 2 XML 語法2.1 基本語法2.2 快速入門2.3 組成部分2.3.1 文檔聲明格式屬性 2.3.2 指令&#xff08;了解&#xff09;&#xff1a;結合CSS2.3.3 元素2.3.4 屬性**XML 元素 vs. 屬…

【Linux】Linux中獲取UUID的方法

1、從mmc塊設備獲取 在Linux下,獲取MMC的CID(Card Identification,識別ID) cat /sys/block/mmcblk0/device/cidMMC CID組成 MID: [127:120] —— 8bit(1Byte)Manufacturer ID,由MMCA分配,比如Sandisk為0x02,Kingston為0x37,Samsung為0x15。OID: [119:104] —— 16b…

windows程序基礎

一、windows程序基礎 1. Windows程序的特點 1&#xff09;用戶界面統一、友好 2&#xff09;支持多任務:允許用戶同時運行多個應用程序(窗口) 3&#xff09;獨立于設備的圖形操作 使用圖形設備接口( GDI, Graphics Device Interface )屏蔽了不同硬件設備的差異&#…

什么是視頻的編碼和解碼

這段描述中&#xff0c;視頻解碼能力和視頻編碼能力指的是不同的處理過程。視頻解碼是將壓縮過的視頻數據解開并還原為可播放的視頻流&#xff0c;而視頻編碼是將原始視頻數據壓縮成更小的尺寸&#xff0c;以減少存儲空間和傳輸帶寬。在這個上下文中&#xff0c;解碼能力和編碼…

LVGL學習筆記 30 - List(列表)

目錄 1. 添加文本 2. 添加按鈕 3. 事件 4. 修改樣式 4.1 背景色 4.2 改變項的顏色 列表是一個垂直布局的矩形&#xff0c;可以向其中添加按鈕和文本。 lv_obj_t* list1 lv_list_create(lv_scr_act());lv_obj_set_size(list1, 180, 220);lv_obj_center(list1); 部件包含&…

Android:換膚框架Android-Skin-Support

gihub地址&#xff1a;https://github.com/ximsfei/Android-skin-support 樣例&#xff1a; 默認&#xff1a; 更換后&#xff1a; 一、引入依賴&#xff1a; // -- 換膚依賴implementation skin.support:skin-support:4.0.5// skin-supportimplementation skin.support:ski…

Rust語法:變量,函數,控制流,struct

文章目錄 變量可變與不可變變量變量與常量變量的Shadowing標量類型整數 復合類型 函數控制流if elseloop & whilefor in structstruct的定義Tuple Structstruct的方法與函數 變量 可變與不可變變量 Rust中使用let來聲明變量&#xff0c;但是let聲明的是不可變變量&#x…

Golang自定義類型與類型別名

type myInt int32 與 type myInt int32&#xff0c;概念并不相同 自定義類型&#xff1a;type myInt int32 通過這種方式定義的類型是一個全新的類型&#xff0c;這個新類型與int32有相同的底層結構&#xff0c;但是卻與int32類型不兼容。 type myInt int32var a int32 5 var…

雙色球彩票系統---(java實現)

雙色球彩票系統&#xff1a;需求&#xff1a;投注號碼由6個紅色號碼和1個藍色球號碼組成。紅色球號碼從1-33中選擇&#xff0c;藍色球號碼從1-16當中選擇 * 紅 藍 * 一等獎 6 1 * 二等獎 6 0 * 三等獎 5 1 * 四等獎 5 0 * 4 1 * 五等獎 4 0 * …

Blazor簡單教程(1.1):Razor基礎語法

文章目錄 前言基本文件配置引入Layout組件 語法介紹pagecodeRazor 語法[ 顯式表達和隱式表達](https://learn.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?viewaspnetcore-7.0#explicit-razor-expressions) 綁定簡單綁定雙向綁定帶參數的函數綁定 依賴注入 前言 Blazor…

synchronized使用

目錄 問題描述 1 鎖方法 2 鎖代碼塊 3 鎖某個類 4 靜態方法上的synchronized 當我們處理多線程處理同步問題的時候就會用到synchronized這個關鍵字&#xff0c;下面介紹下synchronized的四種用法。 問題描述 介紹之前我們先來看下&#xff0c;在java 多線程中 如果沒有線…