Redis 常用命令匯總
核心概念
- Redis 是一個鍵值對數(shù)據(jù)庫,所有數(shù)據(jù)都有一個唯一的 key。
- 命令不區(qū)分大小寫,但通常使用大寫。
- key 和 value 都是二進制安全的,意味著你可以用任何二進制序列作為鍵值。
1. 鍵(Key)通用命令
這些命令不關心值的數(shù)據(jù)類型,適用于所有鍵。
|
命令 |
描述 |
示例 |
|
DEL key [key ...] |
刪除一個或多個鍵 |
DEL name age |
|
EXISTS key |
檢查一個鍵是否存在 |
EXISTS name |
|
EXPIRE key seconds |
為鍵設置過期時間(秒) |
EXPIRE session_id 3600 |
|
TTL key |
查看鍵的剩余生存時間(秒) |
TTL session_id |
|
PERSIST key |
移除鍵的過期時間,使其永久有效 |
PERSIST session_id |
|
KEYS pattern |
查找所有符合給定模式 pattern 的鍵 |
KEYS user:* |
|
TYPE key |
返回鍵所存儲的值的類型 |
TYPE mylist |
|
RENAME key newkey |
重命名鍵 |
RENAME old_name new_name |
|
RENAMENX key newkey |
僅當新鍵名不存在時,重命名鍵 |
RENAMENX old_name new_name |
|
MOVE key db |
將當前數(shù)據(jù)庫的鍵移動到指定數(shù)據(jù)庫 |
MOVE key 1 (移動到1號DB) |
|
RANDOMKEY |
從當前數(shù)據(jù)庫中隨機返回一個鍵 |
RANDOMKEY |
2. 字符串(String)
字符串是 Redis 最基本的數(shù)據(jù)類型,可以包含任何數(shù)據(jù),如文本、數(shù)字(整數(shù)/浮點數(shù))或二進制數(shù)據(jù)(如圖片)。
|
命令 |
描述 |
示例 |
|
SET key value |
設置指定鍵的值 |
SET username "alice" |
|
GET key |
獲取指定鍵的值 |
GET username |
|
GETSET key value |
設置新值并返回舊值 |
GETSET counter 100 |
|
MSET key value [key value ...] |
同時設置多個鍵值對 |
MSET k1 v1 k2 v2 |
|
MGET key [key ...] |
獲取所有給定鍵的值 |
MGET k1 k2 |
|
SETNX key value |
只有在鍵不存在時才設置 |
SETNX lock_key "1" (用于分布式鎖) |
|
INCR key |
將鍵存儲的整數(shù)值增加 1 |
INCR page_views |
|
DECR key |
將鍵存儲的整數(shù)值減少 1 |
DECR inventory |
|
INCRBY key increment |
將鍵存儲的值增加指定的整數(shù) |
INCRBY balance 100 |
|
DECRBY key decrement |
將鍵存儲的值減少指定的整數(shù) |
DECRBY balance 50 |
|
INCRBYFLOAT key increment |
將鍵存儲的值增加指定的浮點數(shù) |
INCRBYFLOAT price 2.5 |
|
APPEND key value |
如果鍵已存在且是字符串,則將值追加到末尾 |
APPEND greeting " World!" |
|
STRLEN key |
返回鍵所存儲的字符串值的長度 |
STRLEN username |
3. 哈希(Hash)
哈希是鍵值對的集合,非常適合存儲對象(如用戶信息)。
|
命令 |
描述 |
示例 |
|
HSET key field value |
設置哈希表中字段的值 |
HSET user:1000 name "Bob" |
|
HGET key field |
獲取哈希表中字段的值 |
HGET user:1000 name |
|
HMSET key field value [field value ...] |
同時設置多個字段(新版 HSET 已支持) |
HMSET user:1000 age 30 city NYC |
|
HMGET key field [field ...] |
獲取所有給定字段的值 |
HMGET user:1000 name age |
|
HGETALL key |
獲取哈希表中所有的字段和值 |
HGETALL user:1000 |
|
HDEL key field [field ...] |
刪除一個或多個哈希表字段 |
HDEL user:1000 city |
|
HEXISTS key field |
查看哈希表中指定的字段是否存在 |
HEXISTS user:1000 name |
|
HKEYS key |
獲取哈希表中的所有字段名 |
HKEYS user:1000 |
|
HVALS key |
獲取哈希表中的所有值 |
HVALS user:1000 |
|
HINCRBY key field increment |
為哈希表中的整數(shù)值字段增加整數(shù)增量 |
HINCRBY user:1000 age 1 |
|
HLEN key |
獲取哈希表中字段的數(shù)量 |
HLEN user:1000 |
4. 列表(List)
列表是簡單的字符串列表,按照插入順序排序。你可以在列表的頭部(左邊)或尾部(右邊)添加元素。
|
命令 |
描述 |
示例 |
|
LPUSH key value [value ...] |
將一個或多個值插入到列表頭部 |
LPUSH mylist "world" |
|
RPUSH key value [value ...] |
將一個或多個值插入到列表尾部 |
RPUSH mylist "hello" |
|
LPOP key |
移除并獲取列表的第一個元素 |
LPOP mylist |
|
RPOP key |
移除并獲取列表的最后一個元素 |
RPOP mylist |
|
LRANGE key start stop |
獲取列表指定范圍內的元素 |
LRANGE mylist 0 -1 (獲取全部) |
|
LLEN key |
獲取列表長度 |
LLEN mylist |
|
LINDEX key index |
通過索引獲取列表中的元素 |
LINDEX mylist 1 |
|
LREM key count value |
移除列表中與值相等的元素 |
LREM mylist 1 "hello" |
|
LSET key index value |
通過索引設置列表元素的值 |
LSET mylist 0 "new" |
|
LTRIM key start stop |
對一個列表進行修剪,只保留指定區(qū)間內的元素 |
LTRIM mylist 0 2 |
5. 集合(Set)
集合是 String 類型的無序集合,集合成員是唯一的,不允許重復。
|
命令 |
描述 |
示例 |
|
SADD key member [member ...] |
向集合添加一個或多個成員 |
SADD tags "redis" "db" |
|
SREM key member [member ...] |
移除集合中一個或多個成員 |
SREM tags "db" |
|
SMEMBERS key |
返回集合中的所有成員 |
SMEMBERS tags |
|
SISMEMBER key member |
判斷 member 元素是否是集合的成員 |
SISMEMBER tags "redis" |
|
SCARD key |
獲取集合的成員數(shù) |
SCARD tags |
|
SINTER key [key ...] |
返回給定所有集合的交集 |
SINTER set1 set2 |
|
SUNION key [key ...] |
返回所有給定集合的并集 |
SUNION set1 set2 |
|
SDIFF key [key ...] |
返回第一個集合與其他集合之間的差集 |
SDIFF set1 set2 |
|
SPOP key [count] |
移除并返回集合中的一個或多個隨機元素 |
SPOP tags 1 |
|
SRANDMEMBER key [count] |
返回集合中一個或多個隨機數(shù),但不移除 |
SRANDMEMBER tags |
6. 有序集合(Sorted Set / ZSet)
有序集合和集合一樣也是 string 類型元素的集合,且不允許重復的成員。不同的是每個元素都會關聯(lián)一個 double 類型的分數(shù)(score)。Redis 正是通過分數(shù)來為集合中的成員進行從小到大的排序。
|
命令 |
描述 |
示例 |
|
ZADD key [NXXX] [CH] [INCR] score member [score member ...] |
向有序集合添加一個或多個成員,或更新已存在成員的分數(shù)。 |
ZADD leaderboard 100 "player1" |
|
ZRANGE key start stop [WITHSCORES] |
通過索引區(qū)間返回有序集合指定區(qū)間內的成員(低到高) |
ZRANGE leaderboard 0 2 WITHSCORES |
|
ZREVRANGE key start stop [WITHSCORES] |
返回有序集中指定區(qū)間內的成員,通過索引,分數(shù)從高到低 |
ZREVRANGE leaderboard 0 2 |
|
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] |
通過分數(shù)返回有序集合指定區(qū)間內的成員 |
ZRANGEBYSCORE leaderboard 50 200 |
|
ZREM key member [member ...] |
移除有序集合中的一個或多個成員 |
ZREM leaderboard "player1" |
|
ZSCORE key member |
返回有序集中,成員的分數(shù)值 |
ZSCORE leaderboard "player1" |
|
ZRANK key member |
返回有序集合中指定成員的索引(排名,從0開始,低到高) |
ZRANK leaderboard "player1" |
|
ZREVRANK key member |
返回有序集合中指定成員的索引(排名,從0開始,高到低) |
ZREVRANK leaderboard "player1" |
|
ZCARD key |
獲取有序集合的成員數(shù) |
ZCARD leaderboard |
|
ZCOUNT key min max |
計算在有序集合中指定區(qū)間分數(shù)的成員數(shù) |
ZCOUNT leaderboard 50 100 |
|
ZINCRBY key increment member |
有序集合中對指定成員的分數(shù)加上增量 |
ZINCRBY leaderboard 15 "player1" |
7. 發(fā)布訂閱(Pub/Sub)
用于消息通信的模式。
|
命令 |
描述 |
示例 |
|
SUBSCRIBE channel [channel ...] |
訂閱一個或多個頻道 |
SUBSCRIBE news |
|
PUBLISH channel message |
將信息發(fā)送到指定的頻道 |
PUBLISH news "hello world" |
|
UNSUBSCRIBE [channel ...] |
退訂一個或多個頻道 |
UNSUBSCRIBE news |
|
PSUBSCRIBE pattern [pattern ...] |
訂閱一個或多個符合給定模式的頻道 |
PSUBSCRIBE news.* |
8. 事務
Redis 事務允許在一次單獨的步驟中執(zhí)行一組命令。
|
命令 |
描述 |
示例 |
|
MULTI |
標記一個事務塊的開始 |
MULTI |
|
EXEC |
執(zhí)行所有事務塊內的命令 |
EXEC |
|
DISCARD |
取消事務,放棄執(zhí)行事務塊內的所有命令 |
DISCARD |
|
WATCH key [key ...] |
監(jiān)視一個或多個鍵,如果在事務執(zhí)行前這個鍵被其他命令改動,則事務將被打斷 |
WATCH balance |
|
UNWATCH |
取消 WATCH 命令對所有鍵的監(jiān)視 |
UNWATCH |
9. 服務器管理與其他
|
命令 |
描述 |
示例 |
|
PING |
測試連接是否存活 |
PING |
|
ECHO message |
打印字符串 |
ECHO "Hello" |
|
SELECT index |
切換到指定的數(shù)據(jù)庫 |
SELECT 1 (切換到1號DB) |
|
AUTH password |
驗證服務器密碼 |
AUTH mypassword |
|
INFO [section] |
獲取 Redis 服務器的各種信息和統(tǒng)計數(shù)值 |
INFO server |
|
CLIENT LIST |
獲取連接到服務器的客戶端連接列表 |
CLIENT LIST |
|
FLUSHDB |
清空當前數(shù)據(jù)庫 |
FLUSHDB |
|
FLUSHALL |
清空所有數(shù)據(jù)庫 |
FLUSHALL |
|
SAVE |
同步保存數(shù)據(jù)到磁盤 |
SAVE |
|
BGSAVE |
在后臺異步保存當前數(shù)據(jù)庫的數(shù)據(jù)到磁盤 |
BGSAVE |
本文來自博客園,作者:業(yè)余磚家,轉載請注明原文鏈接:http://www.rzrgm.cn/yeyuzhuanjia/p/19179726

浙公網(wǎng)安備 33010602011771號