Redis的使用(二)redis的命令總結

1.概述

這一小節,我們主要來研究一下redis的五大類型的基本使用,數據類型如下:

redis我們接下來看一看這八種類型的基本使用。我們可以在redis的官網查詢這些命令:Commands | Docs,同時我們也可以用help 數據類型查看命令的幫助文檔。

2. 常用命令的使用

可以用help generic查看一些基本命令的使用

2.1 查看redis中所有的key

KEYS pattern

比如:
KEYS user    //查看key為user的數據
KEYS *user*  //查看包含user的key

注:該命令會掃描redis里面所有的key,不建議在生產上使用。

2.2 刪除指定的key

Del key1 key2 key3

2.3 判斷某個key是否存在

EXISTS key

2.4 給key設置一個過期時間

EXPIRE key

2.5 更換庫

select 庫的編號

3. string類型

3.1 基本操作

3.1.1 增加一個1字符串

set key value

3.1.2?設置key以及超時時間

set key value ex 時間(單位秒)

3.1.3?不存在才能插入key

set key value nx

3.1.4?根據key獲取字符串

get key

3.2?批量操作

3.2.1?更新多個key

mset key1 v1 key2 v2

3.2.2?獲取多個key

mget key1 key2

3.3?數值操作

3.3.1?遞增

incr key?

3.3.2?遞減

decr key

3.3.3?增加某個數值

incrby key 數值

3.3.4?減少一個數值

decrby key 數值

3.4 復合操作

3.4.1?獲取值后再更新

getset key value

3.4.2?不存在才能更新

setnx key value

3.4.3?更新值和超時時間

setex key 時間 value?

3.4.4?獲取值后刪除

getdel key

3.5?子字符串操作

3.5.1?獲取key中字符串長度

strlen key

3.5.2?獲取子字符串

getrange key 開始位置 結束位置

4. hash類型

4.1?基本操作

4.1.1?左側依次插入多條元素

lpush key v1 v2

4.1.2?右側插入多條元素

rpush key v1 v2

4.1.3?左側彈出多個元素

lpop key 元素個數

4.1.4?右側彈出多個元素

rpop key 元素個數

4.1.5?查看元素個數

llen key

4.1.6?查看list中的某個區間內的元素

lrange key 開始位置 結束位置

注意:lrange key 0 -1 表示查看list中所有數據 & 開始位置從0開始

4.1.7?根據索引獲取某個元素

lindex key 索引

4.1.8?查找某個元素的位置

lpos 元素

4.2?阻塞隊列

? ?在獲取元素的時候,會一直等待,知道有元素返回或者超時,才會被喚醒,其實就是阻塞隊列。

4.2.1?左側插入元素

blpush key v1 v2

4.2.2?右側插入元素

brpush key v1 v2

4.2.3?左側彈出元素(可以監聽多個list)

blpop key1 key2 超時等待時間

4.2.4 右側彈出元素(可以監聽多個list)

brpop key1 key2 超超時等待時間

4.3?復合操作

4.3.1?彈出key1左側元素并從左側插入到key2

lpushlpop key1 key2

4.3.2?左側彈出key1左側元素并從右側插入到key2

lpushrpop key1 key2

4.3.3?彈出key1右側元素并從左側插入到key2

rpushlpop key1 key2

4.3.4?彈出key1右側元素并從右側插入到key2

rpushrpop key1 key2

4.3.5?從key1某側彈出多個元素并放入到key2

lmove key1 key2 元素從哪邊彈出(left/right) 元素從哪邊插入(left/right)

注意:該命令為高版本命令

5.?hash類型

5.1 基本操作

5.1.1?設置hash的某個key的某個field的值

hset key field value

5.1.2?獲取hash的某個key的某個field的值

hget key field

5.1.3?判斷某個key中的某個field是否存在

hexists key field

5.1.4?如果某個key中的某個field不存在才能插入

hsetnx key field value

5.1.5?刪除某個key的某個field

del key field

5.2?遞增操作

hash里面也可以存儲數值

5.2.1?增加整數

hincrby key 整數

5.2.2 增加小數

hincrbyfloat key 小數

5.3 批量操作

5.3.1 查看hash中的所有key和value

hgetall key

5.3.2 查看所有key

hkeys key

5.3.3 查看所有的value

hvals key

注意:上面三個命令不能再生產上面隨便使用,會阻塞redis。

5.3.4 查看redis中部分數據

hscan key cursor?

注意:hscan 會將一個hash拆成多份內容,一次返回其中一份,這樣就不會阻塞redis

6. set類型

6.1 基本操作

6.1.1 添加多個元素到set

sadd key val1 val2

6.1.2 獲取set中所有元素

smembers key

6.1.3 判斷元素是否在set里

sismember key val

6.1.4 獲取set元素個數

scard key

6.1.5 隨機從set中獲取一個元素

spop key

6.1.6?把一個元素從一個set挪到另一個set

smove key1 key2 val

6.1.7?從集合中刪除多個元素

srem key val1 val2

6.2 集合操作

6.2.1 求兩個集合交集

sinner key1 key2

6.2.2 求兩個集合差集

sdiff key1 key2

6.2.3 求兩個集合并集

sunion key1 key2

7. sorted set類型

sorted set相當于java中的hashset,只是它是按照score進行排序。

7.1?基本操作

7.1.1 添加元素

zadd key score1 val1 score2 val2

7.1.2 查詢元素個數

zcard key

7.1.3 查詢元素的score1到score2 范圍內的個數

zcount key score1 score2

7.1.4 查詢元素的score

zscore key

7.1.5 查詢元素排在第幾位

zrank key val1

7.1.6 增加元素的分數

zincrby key 增加的分數 val

7.1.7 彈出score最大的元素

zpopmax key

7.1.8 彈出score最小的元素

zpopmin key

7.1.9 打印score在某個范圍內的元素

zrange key score1 score2 byscore withscores

7.1.10 查看某個元素的排名

zrank key val

7.2 集合操作

7.2.1 交集

zinter key1 key2

7.2.2 差集

zdiff key1 key2

7.2.3 并集

zunion key1 key2

8. bitmap類型

8.1 基本操作

8.1.1 設置某位的值

setbit key offset val

8.1.2 獲取某位的值

getbit key offset

8.1.3 統計1的個數

bitcount key 開始位置 結束位置

8.1.4 位運算

bitop (or/and/xor/not) destkey key1 key2

8.1.5 查找第一個出現該位元素的位置

bitpos key 元素值 開始位置 結束位置

9. geo類型

9.1 基本操作

9.1.1 添加地理元素

GEOADD key longitude latitude member [longitude latitude member ...]

9.1.2 返回元素的經緯度

geopos key member1 member2

9.1.3 返回兩點間的距離

GEODIST key member1 member2 [m|km|ft|mi]

10. HyperLogLog類型

hyperLogLog主要是用來統計一堆元素的基數的數據類型,基數就是這堆元素里面不重復的元素個數。

10.1 基本操作

10.1.1 添加元素

pfadd key val1 val2

10.1.2 統計基數個數

pfcount key?

10.1.3 合并兩個hyperLogLog

pfmerge destkey key1 key2

11. 總結

本文主要是介紹redis的五大數據類型和三中擴展類型的基本使用,無外乎增刪改查再加上集合之間操作。

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

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

相關文章

數據結構 - C/C++ - 串

字符處理 C 特性 C語言中字符串存儲在字符數組中,以空字符\0結束。 字符串常量,const char* str "Hello",存儲在只讀的數據段中。 布局 字符串在內存中是字符連續存儲的集合,最后一個字符為空字符(ASCII值為0)&…

opencascade AIS_InteractiveContext源碼學習7 debug visualization

AIS_InteractiveContext 前言 交互上下文(Interactive Context)允許您在一個或多個視圖器中管理交互對象的圖形行為和選擇。類方法使這一操作非常透明。需要記住的是,對于已經被交互上下文識別的交互對象,必須使用上下文方法進行…

【問題已解決】Vue管理后臺,點擊登錄按鈕,會發起兩次網絡請求(竟然是vscode Compile Hero編譯插件導致的)

問題 VueElement UI 做的管理后臺,點擊登錄按鈕,發現 接口會連續掉兩次,發起兩次網絡請求,但其他接口都是正常調用的,沒有這個問題,并且登錄按鈕也加了loading,防止重復點擊,于是開…

搜索引擎常用語法

引號 (" "): 用雙引號將詞組括起來,搜索引擎將返回包含完全相同短語的結果。 示例:"人工智能發展趨勢" 減號 (-): 在關鍵詞前加上減號可以排除包含特定詞語的結果。 示例:人工智能 -機器學習(排除包含 “機器…

樸素貝葉斯解密:sklearn中的分類器工作原理

📚 樸素貝葉斯解密:sklearn中的分類器工作原理 在機器學習領域,樸素貝葉斯分類器因其簡單、高效而廣受歡迎。特別是在處理大量特征數據時,樸素貝葉斯表現出了卓越的性能。scikit-learn(簡稱sklearn)是Pyth…

JavaMySQL 學習(基礎)

目錄 Java CMD Java發展 計算機存儲規則 Java學習 switch新用法(可以當做if來使用) 數組定義 隨機數 Java內存分配 MySQL MySQL概述 啟動和停止 客戶端連接 數據模型 關系型數據庫 SQL SQL通用語法 SQL分類 DDL--數據定義語言 數據庫…

瀏覽器開發者工具輔助爬蟲開發

文章目錄 瀏覽器開發者工具輔助爬蟲開發打開開發者工具使用Network面板分析請求數據示例步驟: 使用Elements面板查看和修改DOM結構示例步驟: 使用Console面板調試JavaScript代碼示例步驟:示例代碼:1. 輸出日志信息2. 輸出對象信息…

Vue 與 React 區別

Vue.js和React是現代Web開發中兩種非常流行的前端框架,兩者在**核心概念、組件以及生態系統擴展性**等方面存在區別。具體分析如下: 1. **核心概念** - **Vue**:Vue是一個漸進式JavaScript框架,它致力于視圖層,易于上手…

左值右值, 左值引用右值引用,完美轉發

一. 左值和右值 左值: 可以取地址的對象 右值: 不可以取地址的對象 double x1.0, y 2.0; 1; // 字面量, 不可取地址, 是右值 x y; // 表達式返回值, 不可取地址, 是右值 max(x, y); // 傳值返回函數的返回值 (非引用返回)總結就是: 根據是否可以取地址來區分是左值還…

線程池666666

1. 作用 線程池內部維護了多個工作線程,每個工作線程都會去任務隊列中拿取任務并執行,當執行完一個任務后不是馬上銷毀,而是繼續保留執行其它任務。顯然,線程池提高了多線程的復用率,減少了創建和銷毀線程的時間。 2…

git修改已提交的commit注釋

在Git中修改已經提交的commit注釋通常有以下幾種情況和相應的方法: 1. 修改最后一次提交的注釋(快速修正) 如果你想要修改的是最后一次提交的注釋,可以使用 --amend 選項: git commit --amend這個命令會將你的暫存區…

基于深度學習的光度檢測

基于深度學習的光度檢測(Photometric Detection)涉及從圖像中檢測和分析光照信息,用于多種應用,如場景理解、照明調節、增強現實(AR)、圖像增強等。以下是關于這一領域的系統介紹: 1. 任務和目…

JAVA基礎教程DAY1-類與方法及形參實參

首先經過C語言的學習,我們已經學會了基本的編程方法,我們知道C語言是面向過程的編程語言,而JAVA是面向對象的編程語言,所以接下來我們通過對比和舉例來進行JAVA語言的學習 首先我們來講類的概念 類:類是一個模板&…

Ubuntu開通5005端口 記錄

Ubuntu版本:20.04 使用systemctl status firewalld查看防火墻狀態,報錯Unit firewalld.service could not be found 報錯的原因是沒有安裝firewall,安裝命令為sudo apt install firewalld,然后進行安裝 安裝完成后輸入systemctl…

vscode jupyter選擇Python環境時找不到我安裝的Python

在一些情況下,我們需要自己安裝一個Python,在選擇內核是可能找不到指定的Python版本, 再次打開內核選擇頁面就能看到Python環境了 注意先到指定環境下安裝依賴包: ./python3 pip install ipykernel notebook jupyter

人工智能-NLP簡單知識匯總01

人工智能-NLP簡單知識匯總01 1.1自然語言處理的基本概念 自然語言處理難點: 語音歧義句子切分歧義詞義歧義結構歧義代指歧義省略歧義語用歧義 總而言之:!!語言無處不歧義 1.2自然語言處理的基本范式 1.2.1基于規則的方法 通…

[DataWhale大模型應用開發]學習筆記1-嘗試搭建向量數據庫

1.詞向量 1.定義 詞向量(Word Vector)是將單詞表示為向量形式的技術,是自然語言處理(NLP)中的一種常用方法。通過將單詞轉化為向量,計算機能夠更好地理解和處理語言。簡單來說,詞向量就是將單…

Windows系統安裝NVM,實現Node.js多版本管理

目錄 一、前言 二、NVM簡介 三、準備工作 1、卸載Node 2、創建文件夾 四、下載NVM 五、安裝NVM 六、使用NVM 1、NVM常用操作命令 2、查看NVM版本信息 3、查看Node.js版本列表; 4、下載指定版本Node.js 5、使用指定版本Node.js 6、查看已安裝Node.js列…

深度學習賦能數據分析,聯蔚盤云引領業務革新

一、引言 隨著大數據時代的到來,深度學習技術正逐漸成為企業數據分析的新引擎。聯蔚盤云憑借其在深度學習領域的深厚積累,為企業提供高效、精準的數據分析解決方案,助力企業實現業務革新與增長。 二、深度學習與數據分析的完美結合 聯蔚盤…

【區塊鏈+基礎設施】國家健康醫療大數據科創平臺 | FISCO BCOS應用案例

在醫療領域,疾病數據合法合規共享是亟待解決的難題。一方面,當一家醫院對患者實施治療后,若患者轉到其 他醫院就醫,該醫院就無法判斷診療手段是否有效。另一方面,醫療數據屬于個人敏感數據,一旦被泄露或被惡…