常用的Redis命令介紹
Redis 是一個高性能的鍵值存儲數據庫,支持多種數據結構,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。以下是一些常用的 Redis 命令,按數據結構分類:
通用命令
-
redis-cli
:用于啟動redis客戶端; -
PING
:檢查 Redis 服務器是否運行。PING
輸出:
PONG
-
redis-cli -h <主機地址> -p <端口碼數> -a <賬戶密碼>
:用于在遠程的redis上執行命令; -
EXISTS key
:檢查鍵是否存在。EXISTS mykey
輸出:
(integer) 1 # 1表示存在,0表示不存在
-
DEL key
:刪除指定的鍵。DEL mykey
-
TYPE key
:返回鍵的類型。TYPE mykey
輸出:
string # 可以是string、list、set、zset、hash等
字符串(String)
-
SET key value
:設置指定鍵的值。SET mykey "Hello, Redis!"
-
GET key
:獲取指定鍵的值。GET mykey
輸出:
"Hello, Redis!"
-
INCR key
:將指定鍵的整數值加1。INCR mycounter
-
DECR key
:將指定鍵的整數值減1。DECR mycounter
-
APPEND key value
:將值追加到現有鍵的值之后。APPEND mykey "World"
-
STRLEN key
:獲取指定鍵的值的長度。STRLEN mykey
-
MSET key1 value1 key2 value2 ...
:同時設置多個鍵值對。MSET key1 "value1" key2 "value2"
-
MGET key1 key2 ...
:獲取多個鍵的值。MGET key1 key2
哈希(Hash)
-
HSET key field value
:設置哈希表中指定字段的值。HSET myhash field1 "value1"
-
HGET key field
:獲取哈希表中指定字段的值。HGET myhash field1
輸出:
"value1"
-
HGETALL key
:獲取哈希表中所有字段和值。HGETALL myhash
輸出:
1) "field1" 2) "value1"
-
HSETNX key field value
:僅當字段不存在時,設置哈希表字段的值。HSETNX myhash field1 "new_value"
-
HEXISTS key field
:檢查哈希表中指定字段是否存在。HEXISTS myhash field1
-
HDEL key field
:刪除哈希表中的一個或多個字段。HDEL myhash field1
-
HLEN key
:獲取哈希表中的字段數量。HLEN myhash
-
HKEYS key
:獲取哈希表中的所有字段名。HKEYS myhash
-
HVALS key
:獲取哈希表中的所有值。HVALS myhash
列表(List)
-
LPUSH key value
:將一個值插入到列表頭部。LPUSH mylist "element1"
-
RPUSH key value
:將一個值插入到列表尾部。RPUSH mylist "element2"
-
LPOP key
:移出并獲取列表的第一個元素。LPOP mylist
輸出:
"element1"
-
RPOP key
:移出并獲取列表的最后一個元素。RPOP mylist
輸出:
"element2"
-
LRANGE key start stop
:獲取列表指定范圍內的元素。LRANGE mylist 0 -1
輸出:
1) "element1" 2) "element2"
-
LSET key index value
:將列表中指定索引位置的元素設置為新的值。LSET mylist 0 "new_element1"
-
LINDEX key index
:獲取列表中指定索引位置的元素。LINDEX mylist 0
-
LLEN key
:獲取列表的長度。LLEN mylist
-
LREM key count value
:從列表中移除指定數量的某個值。LREM mylist 1 "element1"
-
LTRIM key start stop
:對一個列表進行修剪,只保留指定區間內的元素。LTRIM mylist 0 1
集合(Set)
-
SADD key member
:向集合添加一個或多個成員。SADD myset "member1" SADD myset "member2" "member3"
-
SMEMBERS key
:返回集合中的所有成員。SMEMBERS myset
輸出:
1) "member1" 2) "member2" 3) "member3"
-
SREM key member
:移除集合中的一個或多個成員。SREM myset "member2"
有序集合(Sorted Set)
-
ZADD key score member
:向有序集合添加一個成員,并設置分數。ZADD myzset 1 "member1" ZADD myzset 2 "member2"
-
ZRANGE key start stop [WITHSCORES]
:按索引范圍返回有序集合中的成員。ZRANGE myzset 0 -1 WITHSCORES
輸出:
1) "member1" 2) "1" 3) "member2" 4) "2"
-
ZREM key member
:移除有序集合中的一個成員。ZREM myzset "member1"
-
ZSCORE key member
:獲取有序集合中成員的分數。ZSCORE myzset "member1"
-
ZCARD key
:獲取有序集合的成員數量。ZCARD myzset
-
ZCOUNT key min max
:計算指定分數區間內成員的數量。ZCOUNT myzset 1 2
-
ZRANK key member
:返回有序集合中指定成員的排名(從低到高)。ZRANK myzset "member1"
-
ZREVRANK key member
:返回有序集合中指定成員的排名(從高到低)。ZREVRANK myzset "member1"
-
ZREM key member
:移除有序集合中的一個或多個成員。ZREM myzset "member1"
集合(Set)
-
SISMEMBER key member
:判斷成員是否存在于集合中。SISMEMBER myset "member1"
-
SCARD key
:獲取集合的成員數量。SCARD myset
-
SPOP key [count]
:移除并返回集合中的一個或多個隨機成員。SPOP myset 1
-
SRANDMEMBER key [count]
:返回集合中的一個或多個隨機成員,但不移除。SRANDMEMBER myset 2
-
SMOVE source destination member
:將指定成員從一個集合移動到另一個集合。SMOVE myset1 myset2 "member1"
事務(Transaction)
-
MULTI
:標記一個事務塊的開始。MULTI
-
EXEC
:執行所有在事務塊內的命令。EXEC
-
DISCARD
:取消事務塊內的所有命令。DISCARD
-
WATCH key
:監視一個(或多個)鍵,如果在事務執行之前這個(或這些)鍵被修改,則事務被打斷。WATCH mykey
-
UNWATCH
:取消所有鍵的監視。UNWATCH
發布/訂閱(Pub/Sub)
-
PUBLISH channel message
:將消息發布到指定頻道。PUBLISH mychannel "Hello, World!"
-
SUBSCRIBE channel
:訂閱指定的頻道。SUBSCRIBE mychannel
-
UNSUBSCRIBE [channel ...]
:退訂指定的頻道。UNSUBSCRIBE mychannel
腳本(Scripting)
-
EVAL script numkeys key [key ...] arg [arg ...]
:執行 Lua 腳本。EVAL "return redis.call('set', KEYS[1], ARGV[1])" 1 mykey "Hello"
-
SCRIPT LOAD script
:將腳本加載到腳本緩存但不執行。SCRIPT LOAD "return redis.call('set', KEYS[1], ARGV[1])"
-
EVALSHA sha1 numkeys key [key ...] arg [arg ...]
:根據給定的 SHA1 校驗碼執行緩存在服務器中的腳本。EVALSHA "sha1" 1 mykey "Hello"
其他常用命令
-
KEYS pattern
:查找所有符合給定模式的鍵。KEYS *
輸出示例:
1) "mykey" 2) "myhash" 3) "mylist" 4) "myset"
-
EXPIRE key seconds
:為鍵設置生存時間(以秒為單位)。EXPIRE mykey 3600
-
TTL key
:獲取鍵的剩余生存時間(以秒為單位)。TTL mykey
輸出:
(integer) 3599
-
FLUSHDB
:刪除當前數據庫中的所有鍵。FLUSHDB
-
FLUSHALL
:刪除所有數據庫中的所有鍵。FLUSHALL
-
SAVE
:同步保存數據到磁盤。SAVE
-
BGSAVE
:在后臺異步保存數據到磁盤。BGSAVE
-
INFO
:獲取 Redis 服務器的信息和統計數據。INFO
-
CONFIG GET parameter
:獲取 Redis 配置參數的值。CONFIG GET maxmemory
-
CONFIG SET parameter value
:設置 Redis 配置參數的值。CONFIG SET maxmemory 512mb
這些命令只是 Redis 提供的部分功能,Redis 的命令集合非常豐富,能夠滿足各種數據管理和處理需求。可以參考Redis 官方文檔來深入了解和使用更多的命令。