Redis 作為高性能鍵值存儲系統,提供了豐富的命令集合來操作數據庫及各種數據結構。這些命令不僅可在 Linux 終端直接執行,也在各編程語言的客戶端庫中有對應的方法映射。本文將 Redis 核心命令按功能分類整理,助你快速查閱與掌握。
一、 連接與認證命令
- QUIT:關閉當前連接。
- AUTH password:進行簡單密碼認證。
二、 通用鍵值操作命令(適用於所有類型)
- EXISTS key:檢查鍵是否存在。
- DEL key:刪除指定鍵。
- TYPE key:返回鍵對應值的數據類型。
- KEYS pattern:查找符合模式的所有鍵(生產環境慎用)。
- RANDOMKEY:隨機返回一個鍵。
- RENAME oldkey newkey:重命名鍵,若新鍵存在則覆蓋。
- DBSIZE:返回當前數據庫鍵的數量。
- EXPIRE key seconds:設置鍵的過期時間(秒)。
- TTL key:查看鍵的剩餘生存時間。
- SELECT index:按索引切換數據庫。
- MOVE key dbindex:將當前數據庫的鍵移動到指定索引的數據庫。
- FLUSHDB:清空當前數據庫所有鍵。
- FLUSHALL:清空所有數據庫所有鍵。
三、 字符串操作命令
字符串是 Redis 最基礎的類型,支持文本、數值、二進制等數據。
- SET key value:設置鍵值。
- GET key:獲取值。
- GETSET key value:設置新值並返回舊值。
- MGET key1 key2 ...:批量獲取多個鍵的值。
- SETNX key value:僅當鍵不存在時設置(分布式鎖基礎)。
- SETEX key seconds value:設置值並同時指定過期時間。
- MSET key1 value1 key2 value2 ...:批量設置多個鍵值。
- MSETNX key1 value1 ...:僅當所有鍵均不存在時批量設置。
- INCR key:數值遞增 1(原子操作)。
- INCRBY key increment:按指定增量遞增。
- DECR key:數值遞減 1。
- DECRBY key decrement:按指定增量遞減。
- APPEND key value:向值末尾追加內容。
- SUBSTR key start end:獲取值的子串(舊版命令,新版請用
GETRANGE)。
四、 列表操作命令
列表是簡單的字符串有序集合,支持雙端操作,可作為棧、隊列、阻塞隊列使用。
- RPUSH key value:尾部插入元素。
- LPUSH key value:頭部插入元素。
- LLEN key:獲取列表長度。
- LRANGE key start end:獲取指定範圍元素(索引從 0 開始,支持負數)。
- LTRIM key start end:截取列表,只保留指定範圍。
- LINDEX key index:獲取指定索引元素。
- LSET key index value:設置指定索引元素值。
- LREM key count value:刪除 count 個指定值元素(count=0 刪除全部)。
- LPOP key:移除並返回頭部元素。
- RPOP key:移除並返回尾部元素。
- BLPOP key1 ... timeout:阻塞版 LPOP,超時為 0 表示永久阻塞。
- BRPOP key1 ... timeout:阻塞版 RPOP。
- RPOPLPUSH srckey dstkey:彈出源列表尾部並推入目標列表頭部(原子操作)。
五、 集合操作命令
集合是無序不重複字符串集合,支持集合論運算(交、並、差)。
- SADD key member:添加成員。
- SREM key member:移除成員。
- SPOP key:隨機移除並返回一個成員。
- SMOVE srckey dstkey member:將成員從源集合移至目標集合。
- SCARD key:獲取集合基數(成員數)。
- SISMEMBER key member:判斷成員是否存在。
- SINTER key1 key2 ...:求交集。
- SINTERSTORE dstkey key1 ...:求交集並存儲到目標鍵。
- SUNION key1 key2 ...:求並集。
- SUNIONSTORE dstkey key1 ...:求並集並存儲。
- SDIFF key1 key2 ...:求差集(第一個集合減去後續集合)。
- SDIFFSTORE dstkey key1 ...:求差集並存儲。
- SMEMBERS key:返回所有成員。
- SRANDMEMBER key:隨機返回一個成員(不移除)。
六、 進階提示
除上述核心命令外,Redis 還提供有序集合、哈希表、位圖、HyperLogLog、GEO、Stream 等豐富數據結構及對應命令。生產環境中請注意:
- 避免使用
KEYS *、FLUSHALL 等阻塞命令,改用 SCAN 迭代或異步清理。
- 合理設置過期時間,配合
maxmemory-policy 策略防止內存溢出。
- 利用 Pipeline 批量操作減少網絡往返,使用 Lua 腳本保證原子性。
掌握這些命令組合,能讓你在緩存、會話存儲、排行榜、消息隊列、分布式鎖等場景中遊刃有餘。