最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis 常用命令總結(jié)

 更新時間:2026年04月21日 09:59:34   作者:一只小白000  
本文總結(jié)了Redis在開發(fā)中常用的基礎(chǔ)操作、String(字符串)、Hash(哈希)、List(列表)、Set(集合)、ZSet(有序集合)等等常用應(yīng)用場景,緩存場景、計數(shù)器、分布式鎖、排行榜、消息隊列、用戶標(biāo)簽等,感興趣的朋友跟隨小編一起看看吧

        在日常開發(fā)中,Redis 作為高性能的鍵值存儲數(shù)據(jù)庫,被廣泛應(yīng)用于緩存、消息隊列、排行榜等場景。本文總結(jié)了開發(fā)中最常用的 Redis 命令,幫助你快速查閱和使用。

一. 基礎(chǔ)操作

1.1 連接與通用命令

# 連接 Redis
redis-cli
redis-cli -h 127.0.0.1 -p 6379
redis-cli -a password
# 切換數(shù)據(jù)庫
SELECT 0-15  # Redis 默認(rèn)有16個數(shù)據(jù)庫
# 清空當(dāng)前數(shù)據(jù)庫
FLUSHDB
# 清空所有數(shù)據(jù)庫
FLUSHALL
# 查看 key 的數(shù)量
DBSIZE
# 查看服務(wù)器信息
INFO
# 測試連接
PING

1.2 Key 操作

# 設(shè)置鍵值對(帶過期時間)
SET key value
SET key value EX 3600    # 3600秒后過期
SET key value PX 300000  # 300000毫秒后過期
# 獲取值
GET key
# 刪除 key
DEL key1 key2 key3
# 判斷 key 是否存在
EXISTS key
# 設(shè)置過期時間
EXPIRE key 3600        # 3600秒后過期
EXPIREAT key 1700000000 # 指定時間戳過期
# 查看剩余過期時間
TTL key          # 返回秒
PTTL key         # 返回毫秒
# 移除過期時間
PERSIST key
# 重命名 key
RENAME oldkey newkey
RENAMENX oldkey newkey  # 僅當(dāng) newkey 不存在時重命名
# 查找 key
KEYS pattern      # KEYS user:*  (生產(chǎn)環(huán)境慎用)
SCAN cursor MATCH pattern COUNT count  # SCAN 0 MATCH user:* COUNT 10 (推薦)
# 查看 key 類型
TYPE key

二、String(字符串)

# 設(shè)置和獲取
SET key value
GET key
MGET key1 key2 key3    # 批量獲取
MSET key1 val1 key2 val2 # 批量設(shè)置
# 數(shù)值操作
INCR key          # 自增1
INCRBY key 10     # 自增指定值
DECR key          # 自減1
DECRBY key 10     # 自減指定值
# 字符串追加
APPEND key value  # 返回字符串長度
# 獲取長度
STRLEN key
# 截取子串
GETRANGE key 0 -1  # 0到-1表示全部
# 設(shè)置指定位置的值
SETRANGE key offset value

三、Hash(哈希)

# 設(shè)置字段
HSET key field value
HMSET key field1 value1 field2 value2
# 獲取字段
HGET key field
HMGET key field1 field2
# 獲取所有字段和值
HGETALL key
# 刪除字段
HDEL key field1 field2
# 判斷字段是否存在
HEXISTS key field
# 獲取所有字段名
HKEYS key
# 獲取所有字段值
HVALS key
# 獲取字段數(shù)量
HLEN key
# 數(shù)值操作
HINCRBY key field 10
HINCRBYFLOAT key field 10.5

四、List(列表)

# 添加元素(左側(cè))
LPUSH key value1 value2
LPUSHX key value  # 僅當(dāng)列表存在時添加
# 添加元素(右側(cè))
RPUSH key value1 value2
RPUSHX key value
# 彈出元素
LPOP key  # 左側(cè)彈出
RPOP key  # 右側(cè)彈出
# 獲取列表范圍內(nèi)的元素
LRANGE key 0 -1  # 獲取全部
LRANGE key 0 10  # 獲取前11個
# 獲取列表長度
LLEN key
# 刪除指定值的元素
LREM key count value  # count>0從頭刪,count<0從尾刪,count=0全刪
# 獲取指定索引的元素
LINDEX key index
# 設(shè)置指定索引的元素
LSET key index value
# 列表修剪
LTRIM key 0 100  # 保留0-100的元素,其他刪除
# 阻塞操作(實現(xiàn)消息隊列)
BLPOP key1 key2 timeout
BRPOP key1 key2 timeout

五、Set(集合)

# 添加元素
SADD key member1 member2
# 獲取所有元素
SMEMBERS key
# 刪除元素
SREM key member1 member2
# 判斷元素是否存在
SISMEMBER key member
# 獲取集合大小
SCARD key
# 隨機彈出元素
SPOP key [count]
# 隨機獲取元素(不刪除)
SRANDMEMBER key [count]
# 集合運算
SINTER key1 key2 key3    # 交集
SUNION key1 key2 key3     # 并集
SDIFF key1 key2           # 差集(key1有key2沒有)
# 集合運算并存儲結(jié)果
SINTERSTORE dest key1 key2
SUNIONSTORE dest key1 key2
SDIFFSTORE dest key1 key2

六、ZSet(有序集合)

# 添加元素
ZADD key score1 member1 score2 member2
# 獲取分?jǐn)?shù)范圍內(nèi)的元素(升序)
ZRANGE key 0 -1
ZRANGE key 0 -1 WITHSCORES  # 帶分?jǐn)?shù)
# 獲取分?jǐn)?shù)范圍內(nèi)的元素(降序)
ZREVRANGE key 0 -1
ZREVRANGE key 0 -1 WITHSCORES
# 按分?jǐn)?shù)范圍獲取
ZRANGEBYSCORE key min max
ZREVRANGEBYSCORE key max min
# 獲取元素排名(升序)
ZRANK key member
# 獲取元素排名(降序)
ZREVRANK key member
# 獲取元素分?jǐn)?shù)
ZSCORE key member
# 獲取指定分?jǐn)?shù)范圍內(nèi)的元素數(shù)量
ZCOUNT key min max
# 獲取集合大小
ZCARD key
# 刪除元素
ZREM key member1 member2
# 按排名刪除
ZREMRANGEBYRANK key 0 5
# 按分?jǐn)?shù)刪除
ZREMRANGEBYSCORE key min max
# 增加分?jǐn)?shù)
ZINCRBY key increment member

七、常用應(yīng)用場景

7.1 緩存場景

# 設(shè)置緩存
SET cache:user:1001 '{"id":1001,"name":"張三"}' EX 3600
# 獲取緩存
GET cache:user:1001
# 刪除緩存
DEL cache:user:1001

7.2 計數(shù)器

# 文章閱讀量
INCR article:1001:views
# 點贊數(shù)
INCR post:1001:likes
# 批量點贊計數(shù)
INCRBY post:1001:likes 10

7.3 分布式鎖

# 獲取鎖
SET lock:resource UNIQUE_VALUE NX PX 30000
# 釋放鎖(Lua腳本保證原子性)
EVAL "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end" 1 lock:resource UNIQUE_VALUE

7.4 排行榜

# 添加分?jǐn)?shù)
ZADD leaderboard 95 "player1" 87 "player2" 92 "player3"
# 獲取前10名
ZREVRANGE leaderboard 0 9 WITHSCORES
# 獲取玩家排名
ZREVRANK leaderboard "player1"
# 增加分?jǐn)?shù)
ZINCRBY leaderboard 5 "player1"

7.5 消息隊列

# 生產(chǎn)者(左側(cè)入隊)
LPUSH queue:task '{"id":1,"type":"email"}'
# 消費者(右側(cè)出隊,阻塞5秒)
BRPOP queue:task 5

7.6 用戶標(biāo)簽

# 添加標(biāo)簽
SADD user:1001:tags "程序員" "技術(shù)控" "音樂迷"
# 獲取標(biāo)簽
SMEMBERS user:1001:tags
# 判斷標(biāo)簽是否存在
SISMEMBER user:1001:tags "程序員"
# 查找共同標(biāo)簽的用戶(交集)
SINTER user:1001:tags user:1002:tags

到此這篇關(guān)于Redis 常用命令總結(jié)的文章就介紹到這了,更多相關(guān)redis 常用命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis五種核心數(shù)據(jù)類型與命令示例

    Redis五種核心數(shù)據(jù)類型與命令示例

    本文介紹了Redis的五種核心數(shù)據(jù)類型:String、Hash、List、Set和SortedSet,每種類型都有其獨特的存儲結(jié)構(gòu)、應(yīng)用場景和時間復(fù)雜度,同時,還提供了Java示例代碼和命令示例,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • Redis哨兵模式實現(xiàn)一主二從三哨兵

    Redis哨兵模式實現(xiàn)一主二從三哨兵

    本文主要介紹了Redis哨兵模式實現(xiàn)一主二從三哨兵,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • redis客戶端實現(xiàn)高可用讀寫分離的方式詳解

    redis客戶端實現(xiàn)高可用讀寫分離的方式詳解

    基于sentienl 獲取和動態(tài)感知 master、slaves節(jié)點信息的變化,我們的讀寫分離客戶端就能具備高可用+動態(tài)擴容感知能力了,接下來通過本文給大家分享redis客戶端實現(xiàn)高可用讀寫分離的方式,感興趣的朋友一起看看吧
    2021-07-07
  • Redis主從復(fù)制搭建、哨兵搭建、集群搭建全過程

    Redis主從復(fù)制搭建、哨兵搭建、集群搭建全過程

    本文詳細(xì)介紹了Redis主從復(fù)制和哨兵模式的搭建步驟、配置方法以及主從復(fù)制和哨兵模式的特點和應(yīng)用,主從復(fù)制可以實現(xiàn)讀寫分離和性能擴展,同時提供了容災(zāi)和快速恢復(fù)功能,哨兵模式可以實現(xiàn)主節(jié)點的自動故障轉(zhuǎn)移,提高系統(tǒng)的可用性和可靠性
    2026-03-03
  • 詳解如何發(fā)現(xiàn)并解決Redis熱點Key問題

    詳解如何發(fā)現(xiàn)并解決Redis熱點Key問題

    Redis 熱點 Key 是指在某一時間段內(nèi),被大量的讀寫操作命中的 Key,這種情況可能會導(dǎo)致性能瓶頸,數(shù)據(jù)一致性問題,緩存擊穿等問題,所以本文給大家介紹了如何發(fā)現(xiàn)并解決Redis熱點Key問題,需要的朋友可以參考下
    2024-05-05
  • Redis中HyperLogLog的使用詳情

    Redis中HyperLogLog的使用詳情

    這篇文章主要介紹了Redis中HyperLogLog的使用詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 淺析Redis中紅鎖RedLock的實現(xiàn)原理

    淺析Redis中紅鎖RedLock的實現(xiàn)原理

    RedLock?是一種分布式鎖的實現(xiàn)算法,由?Redis?的作者?Salvatore?Sanfilippo(也稱為?Antirez)提出,本文主要為大家詳細(xì)介紹了紅鎖RedLock的實現(xiàn)原理,感興趣的可以了解下
    2024-02-02
  • Windows安裝Redis的幾種方式與測試流程總結(jié)

    Windows安裝Redis的幾種方式與測試流程總結(jié)

    本文系統(tǒng)梳理了在 Windows 系統(tǒng)上安裝和使用 Redis 的多種方式,涵蓋通過端口號識別運行中的 Redis 實例、進程定位方法,并提供了 Java 環(huán)境下的連接與測試示例,同時還介紹了常見的圖形化管理工具,便于可視化管理與調(diào)試,需要的朋友可以參考下
    2025-05-05
  • RedisTemplate訪問Redis的更好方法

    RedisTemplate訪問Redis的更好方法

    這篇文章主要為大家介紹了RedisTemplate訪問Redis的更好方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 詳談redis跟數(shù)據(jù)庫的數(shù)據(jù)同步問題

    詳談redis跟數(shù)據(jù)庫的數(shù)據(jù)同步問題

    文章討論了在Redis和數(shù)據(jù)庫數(shù)據(jù)一致性問題上的解決方案,主要比較了先更新Redis緩存再更新數(shù)據(jù)庫和先更新數(shù)據(jù)庫再更新Redis緩存兩種方案,文章指出,刪除Redis緩存后再更新數(shù)據(jù)庫的方案更優(yōu),因為它可以避免數(shù)據(jù)不一致的問題,但可能產(chǎn)生高并發(fā)問題
    2025-01-01

最新評論

陈巴尔虎旗| 车致| 龙泉市| 南漳县| 腾冲县| 茶陵县| 会昌县| 凭祥市| 新营市| 无为县| 大庆市| 金门县| 张家界市| 叶城县| 营口市| 苏尼特左旗| 宜君县| 阜康市| 通海县| 紫金县| 上杭县| 长白| 永宁县| 长寿区| 开原市| 乌什县| 黔江区| 祁门县| 民勤县| 乐山市| 中牟县| 扎囊县| 安泽县| 海南省| 遵化市| 嘉鱼县| 图木舒克市| 宁河县| 宁安市| 莱州市| 中牟县|