Redis 是一個開源的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng),廣泛應(yīng)用于緩存、會話管理、排行榜、消息隊列等場景。它支持多種數(shù)據(jù)結(jié)構(gòu)如字符串、哈希、列表、集合、有序集合等,提供了豐富的命令和操作來滿足各種業(yè)務(wù)需求。本文將介紹 Redis 常見命令的用法和示例,幫助開發(fā)者快速掌握 Redis 的基本操作。
Redis 的命令大致可以分為幾個類別,包括字符串操作、哈希操作、列表操作、集合操作、有序集合操作、事務(wù)操作、發(fā)布訂閱、服務(wù)器管理等。本篇文章將詳細(xì)列舉這些常用命令的用法和示例,幫助開發(fā)者更高效地使用 Redis。
一、字符串操作命令
字符串是 Redis 中最基本的數(shù)據(jù)類型,Redis 提供了許多用于操作字符串的命令。以下是一些常用的字符串操作命令:
1. SET
SET 命令用于設(shè)置一個字符串鍵值對。如果鍵已經(jīng)存在,則會覆蓋原有的值。
SET key value
示例:
SET username "redis_user"
2. GET
GET 命令用于獲取指定鍵的字符串值。
GET key
示例:
GET username
3. DEL
DEL 命令用于刪除指定的鍵及其對應(yīng)的值。
DEL key
示例:
DEL username
4. MSET 和 MGET
MSET 和 MGET 命令用于批量設(shè)置和獲取多個鍵值對。
MSET key1 value1 key2 value2 key3 value3
MGET key1 key2 key3
二、哈希操作命令
哈希是 Redis 中用于存儲對象的鍵值對的數(shù)據(jù)結(jié)構(gòu)。每個哈希值由多個鍵值對組成,適合存儲對象屬性等數(shù)據(jù)。以下是常用的哈希操作命令:
1. HSET
HSET 命令用于在哈希表中設(shè)置字段值。
HSET hash_name field value
示例:
HSET user:1000 name "John Doe" age 30
2. HGET
HGET 命令用于獲取哈希表中特定字段的值。
HGET hash_name field
示例:
HGET user:1000 name
3. HGETALL
HGETALL 命令用于獲取哈希表中所有的字段和值。
HGETALL hash_name
示例:
HGETALL user:1000
4. HDEL
HDEL 命令用于刪除哈希表中的一個或多個字段。
HDEL hash_name field [field ...]
示例:
HDEL user:1000 age
三、列表操作命令
Redis 中的列表是一種有序的數(shù)據(jù)結(jié)構(gòu),可以從兩端推送和彈出元素。常見的列表操作命令如下:
1. LPUSH
LPUSH 命令用于將一個或多個元素添加到列表的左端。
LPUSH list_name value1 value2 ...
示例:
LPUSH mylist "apple" "banana" "cherry"
2. RPUSH
RPUSH 命令用于將一個或多個元素添加到列表的右端。
RPUSH list_name value1 value2 ...
示例:
RPUSH mylist "orange" "pear"
3. LPOP
LPOP 命令用于從列表的左端移除并返回一個元素。
LPOP list_name
示例:
LPOP mylist
4. RPOP
RPOP 命令用于從列表的右端移除并返回一個元素。
RPOP list_name
示例:
RPOP mylist
四、集合操作命令
Redis 的集合是一種無序的字符串集合,集合中的元素是唯一的。集合命令通常用于去重操作。常見的集合操作命令如下:
1. SADD
SADD 命令用于將一個或多個成員添加到集合中。如果成員已經(jīng)存在于集合中,則忽略該成員。
SADD set_name member1 member2 ...
示例:
SADD myset "apple" "banana" "cherry"
2. SMEMBERS
SMEMBERS 命令用于獲取集合中的所有成員。
SMEMBERS set_name
示例:
SMEMBERS myset
3. SREM
SREM 命令用于從集合中刪除一個或多個成員。
SREM set_name member1 member2 ...
示例:
SREM myset "banana"
五、有序集合操作命令
有序集合與集合相似,但每個元素都會關(guān)聯(lián)一個分?jǐn)?shù)(score),元素按分?jǐn)?shù)升序排列。常見的有序集合操作命令如下:
1. ZADD
ZADD 命令用于將一個或多個成員及其分?jǐn)?shù)添加到有序集合中。
ZADD zset_name score1 member1 score2 member2 ...
示例:
ZADD leaderboard 10 "player1" 20 "player2"
2. ZRANGE
ZRANGE 命令用于返回有序集合中指定區(qū)間的成員。
ZRANGE zset_name start stop [WITHSCORES]
示例:
ZRANGE leaderboard 0 -1 WITHSCORES
3. ZREM
ZREM 命令用于從有序集合中刪除一個或多個成員。
ZREM zset_name member1 member2 ...
示例:
ZREM leaderboard "player2"
六、事務(wù)操作命令
Redis 支持事務(wù)操作,允許將多個命令打包成一個原子操作。以下是常見的事務(wù)操作命令:
1. MULTI
MULTI 命令用于標(biāo)記事務(wù)的開始。
MULTI
2. EXEC
EXEC 命令用于執(zhí)行事務(wù)中的所有命令。
EXEC
3. DISCARD
DISCARD 命令用于放棄事務(wù)中的所有命令。
DISCARD
4. WATCH
WATCH 命令用于監(jiān)視一個或多個鍵,如果這些鍵在事務(wù)執(zhí)行前發(fā)生變化,事務(wù)將被中止。
WATCH key1 key2 ...
七、發(fā)布/訂閱操作命令
Redis 的發(fā)布/訂閱機(jī)制允許客戶端之間進(jìn)行消息通信。以下是常見的發(fā)布/訂閱命令:
1. PUBLISH
PUBLISH 命令用于將消息發(fā)布到頻道。
PUBLISH channel message
2. SUBSCRIBE
SUBSCRIBE 命令用于訂閱一個或多個頻道。
SUBSCRIBE channel1 channel2 ...
3. UNSUBSCRIBE
UNSUBSCRIBE 命令用于取消對頻道的訂閱。
UNSUBSCRIBE channel1 channel2 ...