【Redis】常用命令匯總

Redis 作為高性能的鍵值存儲數據庫,提供了豐富的命令集,主要涵蓋 字符串 (String)、哈希 (Hash)、列表 (List)、集合 (Set)、有序集合 (ZSet)、鍵 (Keys)、Geo(地理位置)、HyperLogLog(基數統計)、Bitmap(位圖)、BitField(位操作)、Scan(迭代查詢)操作。
下面按照類別分類總結 Redis 的常用命令及其使用方式。

基本操作

1. Key(鍵)操作

命令作用
EXISTS key檢查 key 是否存在
DEL key [key ...]刪除一個或多個 key
EXPIRE key seconds設置 key 的過期時間
TTL key查看 key 剩余的生存時間
RENAME key newkey修改 key 的名稱
TYPE key獲取 key 對應的 value 類型
KEYS pattern

查找符合 pattern 規則的 key

示例

SET name "redis"
EXPIRE name 10
TTL name
DEL name

2. 字符串 (String)

命令說明
SET key value設置指定 key 的值
GET key獲取指定 key 的值
GETSET key value設置新值并返回舊值
MGET key [key ...]同時獲取多個 key 的值
MSET key value [key value ...]同時設置多個 key 的值
MSETNX key value [key value ...]同時設置多個 key 的值(當所有 key 都不存在時才執行)
SETNX key value當 key 不存在時,設置 key 的值
SETEX key seconds value設置 key 的值,并指定過期時間(秒)
PSETEX key milliseconds value設置 key 的值,并指定過期時間(毫秒)
STRLEN key返回 key 中字符串值的長度
APPEND key value追加 value 到 key 原有值的末尾
GETRANGE key start end獲取字符串指定區間內的子字符串(舊別名:SUBSTR)
SETRANGE key offset value從指定偏移量開始,覆蓋寫入字符串
INCR key將 key 中存儲的數字加 1
INCRBY key increment將 key 中存儲的數字加上指定增量
INCRBYFLOAT key increment將 key 中存儲的浮點數加上指定增量
DECR key將 key 中存儲的數字減 1
DECRBY key decrement將 key 中存儲的數字減去指定減量
GETBIT key offset返回字符串中指定偏移量處的位值
SETBIT key offset value將字符串中指定偏移量處的位設置為 0 或 1
BITCOUNT key [start end]統計字符串中值為 1 的位數
BITOP operation destkey key [key ...]對一個或多個 key 進行位操作(AND、OR、XOR、NOT)
BITPOS key bit [start] [end]查找字符串中第一個指定二進制位的位置

示例

SET username "Tom"
GET username
INCR count
DECR count
APPEND username " Smith"
STRLEN username

3. 哈希 (Hash)

命令說明
HSET key field value為哈希表中的字段賦值
HSETNX key field value僅當字段不存在時,為哈希表中的字段賦值
HMSET key field value [field value ...]同時為多個字段賦值(新版 Redis 建議使用 HSET 多參數形式)
HGET key field獲取哈希表中指定字段的值
HMGET key field [field ...]獲取哈希表中多個字段的值
HDEL key field [field ...]刪除哈希表中一個或多個字段
HEXISTS key field檢查哈希表中是否存在指定字段
HLEN key返回哈希表中字段的數量
HKEYS key返回哈希表中所有的字段名稱
HVALS key返回哈希表中所有字段對應的值
HGETALL key返回哈希表中所有的字段和值
HINCRBY key field increment將哈希表中指定字段的整數值增加指定數值
HINCRBYFLOAT key field increment將哈希表中指定字段的浮點數值增加指定數值
HSTRLEN key field返回哈希表中指定字段對應的值的字符串長度

示例

HSET user:1001 name "Alice"
HGET user:1001 name
HGETALL user:1001
HDEL user:1001 name

4. 列表 (List)

命令說明
LPUSH key value [value ...]將一個或多個值插入到列表的頭部
RPUSH key value [value ...]將一個或多個值插入到列表的尾部
LPOP key移除并返回列表的第一個元素
RPOP key移除并返回列表的最后一個元素
LINDEX key index通過索引獲取列表中的元素(索引從 0 開始,負數表示從尾部開始)
LLEN key獲取列表的長度
LRANGE key start stop獲取列表中指定區間內的元素
**LINSERT key BEFOREAFTER pivot value**
LSET key index value對列表中指定索引位置的元素進行賦值
LREM key count value根據參數 count 的值,移除列表中與 value 相等的元素
LTRIM key start stop對列表進行修剪,只保留指定區間內的元素
RPOPLPUSH source destination移除 source 列表的最后一個元素,并將其添加到 destination 列表的頭部,同時返回該元素
BLPOP key [key ...] timeout阻塞式地移除并返回列表的第一個元素(可同時阻塞多個列表)
BRPOP key [key ...] timeout阻塞式地移除并返回列表的最后一個元素
BRPOPLPUSH source destination timeout阻塞式地執行 RPOPLPUSH 操作
LPUSHX key value當列表存在時,將值插入到列表頭部
RPUSHX key value當列表存在時,將值插入到列表尾部

示例

LPUSH queue "task1"
RPUSH queue "task2"
LPOP queue
LRANGE queue 0 -1

5. 集合 (Set)

命令說明
SADD key member [member ...]向集合中添加一個或多個成員
SREM key member [member ...]移除集合中的一個或多個成員
SMEMBERS key返回集合中的所有成員
SISMEMBER key member判斷指定元素是否集合的成員
SCARD key獲取集合中成員的數量
SINTER key [key ...]返回給定所有集合的交集
SINTERSTORE destination key [key ...]計算給定集合的交集,并將結果存儲在 destination 中
SUNION key [key ...]返回給定所有集合的并集
SUNIONSTORE destination key [key ...]計算給定集合的并集,并將結果存儲在 destination 中
SDIFF key [key ...]返回給定集合之間的差集
SDIFFSTORE destination key [key ...]計算差集并將結果存儲在 destination 中
SRANDMEMBER key [count]返回集合中一個或多個隨機成員
SSCAN key cursor [MATCH pattern] [COUNT count]迭代集合中的元素(適合處理大集合時分批遍歷)

示例

SADD users "Tom" "Jerry"
SMEMBERS users
SISMEMBER users "Tom"
SREM users "Jerry"
SCARD users

6. 有序集合 (Sorted Set / ZSet)

命令說明
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
ZREM key member [member ...]移除有序集合中的一個或多個成員
ZINCRBY key increment member為有序集合中的成員的分數加上指定值
ZRANGE key start stop [WITHSCORES]返回有序集合中指定區間內的成員(按分數從低到高排序)
ZREVRANGE key start stop [WITHSCORES]返回有序集合中指定區間內的成員(按分數從高到低排序)
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]返回有序集合中分數在指定范圍內的成員
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]返回有序集合中分數在指定范圍內的成員(從高到低排序)
ZRANK key member返回成員在有序集合中的排名(從 0 開始,按分數從低到高排序)
ZREVRANK key member返回成員在有序集合中的排名(從 0 開始,按分數從高到低排序)
ZSCORE key member返回有序集合中成員的分數
ZCARD key獲取有序集合中的成員數量
ZCOUNT key min max統計分數在指定范圍內的成員數量
ZLEXCOUNT key min max統計字典序在指定范圍內的成員數量(僅適用于分數相同的成員)
ZRANGEBYLEX key min max [LIMIT offset count]返回有序集合中成員的字典序范圍內的元素
ZREVRANGEBYLEX key max min [LIMIT offset count]返回有序集合中成員的字典序范圍內的元素(逆序)
ZPOPMIN key [count]移除并返回有序集合中分數最小的成員
ZPOPMAX key [count]移除并返回有序集合中分數最大的成員
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM | MAX |?MIN]多個有序集合求并集
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM | MAX |?MIN]多個有序集合求交集
ZSCAN key cursor [MATCH pattern] [COUNT count]迭代有序集合中的元素
ZMSCORE key member [member ...]獲取有序集合中多個成員的分數(Redis 6.2 及以上支持)

示例

ZADD ranking 100 "Alice"
ZADD ranking 200 "Bob"
ZRANGE ranking 0 -1 WITHSCORES
ZREM ranking "Alice"

7. 其他操作

命令作用
FLUSHDB清空當前數據庫
FLUSHALL清空所有數據庫
INFO獲取服務器統計信息
PING測試連接

?特定使用場景操作

1. Geo(地理位置存儲與計算)

Redis 的 Geo 用于存儲地理位置(經緯度)并提供距離計算、范圍查詢等功能。

命令作用
GEOADD key longitude latitude member [longitude latitude member ...]添加地理位置信息
GEODIST key member1 member2 [unit]計算兩個位置之間的距離(支持單位:m、km、mi、ft)
GEOPOS key member [member ...]獲取指定位置的經緯度
`GEORADIUS key longitude latitude radius unit [WITHCOORD] [WITHDIST] [COUNT count] [ASC|DESC]`
`GEORADIUSBYMEMBER key member radius unit [WITHCOORD] [WITHDIST] [COUNT count] [ASC|DESC]`
GEOHASH key member [member ...]獲取成員的 GeoHash 值

示例

GEOADD cities 116.40 39.90 "Beijing"
GEOADD cities 121.47 31.23 "Shanghai"
GEODIST cities "Beijing" "Shanghai" km
GEORADIUS cities 116.40 39.90 100 km WITHDIST

2. HyperLogLog(基數統計)

Redis HyperLogLog 是用于 近似統計不重復元素數量 的數據結構,占用內存固定(12 KB),適用于大規模數據去重計數。

命令作用
PFADD key element [element ...]添加元素到 HyperLogLog
PFCOUNT key [key ...]獲取去重后的元素數量估算值
PFMERGE destkey sourcekey [sourcekey ...]合并多個 HyperLogLog

示例

PFADD users "user1" "user2" "user3"
PFCOUNT users
PFMERGE total_users users1 users2

適用場景:統計 網站UV、活躍用戶數、訪問IP數 等。

3. Bitmap(位圖)

Bitmap 是 二進制位存儲 結構,適用于存儲 用戶簽到、活躍狀態、權限控制 等場景。

命令作用
SETBIT key offset value設置某個位的值(1 或 0)
GETBIT key offset獲取某個位的值
BITCOUNT key [start end]統計 key 中值為 1 的位個數
BITOP operation destkey key [key ...]按位操作(AND、OR、XOR、NOT)

示例

SETBIT sign:20240301 1 1  # 用戶ID=1簽到
SETBIT sign:20240301 2 1  # 用戶ID=2簽到
GETBIT sign:20240301 1  # 查詢用戶ID=1是否簽到
BITCOUNT sign:20240301  # 統計今日簽到人數

適用場景:用戶簽到、狀態標記、權限控制、唯一性判斷。

4. BitField(高級位操作)

BitField 用于操作多個二進制位 (支持批量讀寫),適用于 計數器、標記存儲、狀態管理

命令作用
BITFIELD key GET type offset讀取某個位置的值
BITFIELD key SET type offset value設置某個位范圍的值
BITFIELD key INCRBY type offset increment對某個位范圍的值進行增減

示例

BITFIELD user_data SET u8 0 100   # 把偏移量0的8位數值設為100
BITFIELD user_data INCRBY u8 0 5  # 偏移量0的8位數值加5
BITFIELD user_data GET u8 0       # 獲取偏移量0的8位值

適用場景:用戶計數、狀態標記、存儲緊湊數據。

5. Scan(游標迭代查詢)

SCAN 命令用于 大規模數據迭代查詢,可以分批遍歷 key、集合、哈希、ZSet

命令作用
SCAN cursor [MATCH pattern] [COUNT count]迭代 key
HSCAN key cursor [MATCH pattern] [COUNT count]迭代 hash
SSCAN key cursor [MATCH pattern] [COUNT count]迭代 set
ZSCAN key cursor [MATCH pattern] [COUNT count]迭代 zset

示例

SCAN 0 MATCH user:* COUNT 10
HSCAN user:1001 0 MATCH name COUNT 5

適用場景海量數據分頁查詢,防止 KEYS 阻塞 Redis。

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

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

相關文章

Redis - 高可用實現方案解析:主從復制與哨兵監控

文章目錄 Pre概述Redis 高可用實現方案一、主從復制機制1.1 全量同步流程1.2 增量同步(PSYNC)流程 二、哨兵監控機制2.1 故障轉移時序流程 三、方案對比與選型建議四、生產環境實踐建議 Pre Redis-入門到精通 Redis進階系列 Redis進階 - Redis主從工作…

2025年滲透測試面試題總結-02(題目+回答)

網絡安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。 目錄 阿里云安全實習 一、代碼審計經驗與思路 二、越權漏洞原理與審計要點 三、SSRF漏洞解析與防御 四、教…

水滴tabbar canvas實現思路

廢話不多說之間看效果圖,只要解決了這個效果水滴tabbar就能做出來了 源碼地址 一、核心實現步驟分解 布局結構搭建 使用 作為繪制容器 設置 width=600, height=200 基礎尺寸 通過 JS 動態計算實際尺寸(適配高清屏) function initCanvas() {// 獲取設備像素比(解決 Re…

解決各大瀏覽器中http地址無權限調用麥克風攝像頭問題(包括谷歌,Edge,360,火狐)后續會陸續補充

項目場景: 在各大瀏覽器中http地址調用電腦麥克風攝像頭會沒有權限,http協議無法使用多媒體設備 原因分析: 為了用戶的隱私安全,http協議無法使用多媒體設備。因為像攝像頭和麥克風屬于可能涉及重大隱私問題的API,ge…

網絡安全蜜罐產品研究現狀

🍅 點擊文末小卡片 ,免費獲取網絡安全全套資料,資料在手,漲薪更快 一、知識點總結 1、蜜罐(Honeypot):誘捕攻擊者的一個陷阱。 2、蜜網(Honeynet):采用了技術…

el-card 結合 el-descriptions 作為信息展示

記錄下el-card 組合 el-descriptions 實現動態展示信息 文章結構 實現效果1. el-descriptions 組件使用1.1 結合v-for實現列表渲染1.2 解析 2. 自定義 el-descriptions 樣式2.1 修改背景色、字體顏色2.2 調整字體大小2.3 解析 3. el-card 結合 el-descriptions 作為信息展示3.…

【Java---數據結構】鏈表 LinkedList

1. 鏈表的概念 鏈表用于存儲一系列元素,由一系列節點組成,每個節點包含兩部分:數據域和指針域。 數據域:用于存儲數據元素 指針域:用于指向下一個節點的地址,通過指針將各個節點連接在一起,形…

python-leetcode-不同的二叉搜索樹 II

95. 不同的二叉搜索樹 II - 力扣(LeetCode) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class S…

動態規劃/貪心算法

一、動態規劃 動態規劃 是一種用于解決優化問題的算法設計技術,尤其適用于具有重疊子問題和最優子結構性質的問題。它通過將復雜問題分解為更簡單的子問題,并保存這些子問題的解以避免重復計算,從而提高效率。 動態規劃的核心思想 最優子結…

2月28日,三極管測量,水利-51單片機

眾所周知,三極管(BJT)有三個管腳,基極(B)、集電極(C)、發射極(E),在實際應用中,不可避免地會遇到引腳辨別的問題。接下來就講下三極管…

Linux常見基本指令(二)

目錄 1、Linux基礎指令 文本查看 cat指令 more指令 less指令 head指令&tail指令 時間相關指令 查找、搜索相關指令 find指令 which指令 whereis指令 alias指令 grep指令 打包壓縮和解壓縮 zip指令(壓縮) unzip(解壓&…

Day 55 卡瑪筆記

這是基于代碼隨想錄的每日打卡 所有可達路徑 題目描述 ? 給定一個有 n 個節點的有向無環圖,節點編號從 1 到 n。請編寫一個函數,找出并返回所有從節點 1 到節點 n 的路徑。每條路徑應以節點編號的列表形式表示。 輸入描述 ? 第一行包含兩個整數…

2. 在后端代碼中加入日志記錄模塊

1. 說明 日志模塊基本上是每一個軟件系統開發中必不可少的,主要用于持久記錄一些代碼運行中的輸出信息,輔助編碼人員進行代碼調試,以及后期軟件上線運行報錯分析。在Python中加入日志模塊比較簡單,只需要借助logging和RotatingFi…

【Vue3】淺談setup語法糖

Vue3 的 setup 語法糖是通過 <script setup> 標簽啟用的特性&#xff0c;它是對 Composition API 的進一步封裝&#xff0c;旨在簡化組件的聲明式寫法&#xff0c;同時保留 Composition API 的邏輯組織能力。以下是其核心概念和原理分析&#xff1a; 一、<script setu…

物聯網小范圍高精度GPS使用

在園區內實現小范圍高精度GPS&#xff08;全球定位系統&#xff09;定位&#xff0c;通常需要結合多種技術來彌補傳統GPS在精度和覆蓋范圍上的不足。以下是實現小范圍高精度GPS定位的解決方案&#xff0c;包括技術選擇、系統設計和應用場景。 一、技術選擇 在園區內實現高精度…

【前端】前端設計中的響應式設計詳解

文章目錄 前言一、響應式設計的定義與作用二、響應式設計的原則三、響應式設計的實現四、響應式設計的最佳實踐總結 前言 在當今數字化時代&#xff0c;網站和應用程序需要適應各種設備&#xff0c;從桌面電腦到平板電腦和手機。響應式設計應運而生&#xff0c;成為一種可以適…

Rocky Linux 系統安裝 typecho 個人博客系統(Docker 方式)

typecho 博客系統安裝 官網: https://typecho.org/ 1. 安裝 Docker curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo && yum install docker-ce -y && docker -v && systemctl enable --now docker…

pytorch-gpu版本安裝(英偉達gpu驅動安裝)

一、安裝cuda 1?? 檢查是否有 GPU lspci | grep -i nvidia如果沒有輸出&#xff0c;可能你的服務器 沒有 GPU&#xff0c;或者 GPU 未正確識別。 2?? 檢查 NVIDIA 驅動是否安裝 dpkg -l | grep -i nvidia如果沒有相關輸出&#xff0c;說明驅動未安裝&#xff0c;建議安…

華為OD-2024年E卷-分批薩[100分]

文章目錄 題目描述輸入描述輸出描述用例1解題思路Python3源碼 題目描述 吃貨"和"饞嘴"兩人到披薩店點了一份鐵盤&#xff08;圓形&#xff09;披薩&#xff0c;并囑咐店員將披薩按放射狀切成大小相同的偶數個小塊。但是粗心的服務員將披薩切成了每塊大小都完全不…

【計算機網絡入門】初學計算機網絡(六)

目錄 1.回憶數據鏈路層作用 2. 組幀 2.1 四種組幀方法 2.1.1 字符計數法 2.1.2 字節填充法 2.1.3 零比特填充法 2.1.4 違規編碼法 3. 差錯控制 3.1 檢錯編碼 3.1.1 奇偶校驗碼 3.1.2 CRC&#xff08;循環冗余校驗&#xff09;校驗碼 3.2 糾錯編碼 3.2.1 海明校驗碼…