Redis(Remote Dictionary Server)是一個開源的高性能鍵值對(key-value)存儲數據庫。它支持多種數據結構,如字符串(strings)、列表(lists)、集合(sets)、有序集合(sorted sets)、哈希表(hashes)和地理空間索引(geospatial indexes)等。Redis提供了豐富的命令來操作這些數據結構,實現各種功能。以下是一些常用的Redis命令及其功能:
連接與斷開連接
connect [ip] [port]
:連接到指定的Redis服務器。disconnect
:斷開與當前Redis服務器的連接。ping
:發送PING命令到服務器,如果服務器響應PONG,則表示連接正常。設置和獲取數據
set key value
:將鍵key
的值設置為value
。get key
:獲取鍵key
的值。setnx key value
:如果鍵key
不存在,則設置其值為value
,并返回1;否則返回0。setex key seconds value
:將鍵key
的值設置為value
,并設置過期時間(單位:秒)。hset key field value
:在哈希表key
中設置字段field
的值為value
。hget key field
:獲取哈希表key
中字段field
的值。列表操作
lpush key value
:將值value
插入到列表key
的頭部。rpush key value
:將值value
插入到列表key
的尾部。lpop key
:移除并返回列表key
頭部的元素。rpop key
:移除并返回列表key
尾部的元素。lrange key start end
:獲取列表key
中從索引start
到end
的元素。集合操作
sadd key value
:將值value
添加到集合key
中。srem key value
:從集合key
中移除值value
。smembers key
:獲取集合key
中的所有元素。sismember key value
:判斷值value
是否在集合key
中。有序集合操作
zadd key score value
:將值value
添加到有序集合key
中,并指定其分數(score)。zrem key value
:從有序集合key
中移除值value
。zrange key start end [withscores]
:獲取有序集合key
中從索引start
到end
的元素及其分數。zscore key value
:獲取有序集合key
中值value
的分數。哈希表操作
hsetnx key field value
:如果哈希表key
中不存在字段field
,則設置其值為value
。hgetall key
:獲取哈希表key
中的所有字段及其值。hexists key field
:判斷哈希表key
中是否存在字段field
。事務與回滾
multi
:開始一個事務。exec
:執行事務中的所有命令。discard
:取消事務,回滾所有已執行的命令。發布與訂閱
publish channel message
:向指定頻道channel
發布消息message
。subscribe channel [channel ...]
:訂閱一個或多個頻道。psubscribe pattern [pattern ...]
:根據模式匹配訂閱一個或多個頻道。unpublish channel message
:取消發布消息到指定頻道。punsubscribe [channel ...]
:取消訂閱一個或多個頻道。unsubscribe channel [channel ...]
:取消訂閱一個或多個頻道。Lua腳本處理
eval script numkeys key [key ...]
:執行Lua腳本script
,其中numkeys
表示腳本中使用的鍵的數量,key
表示腳本中使用的鍵。evalsha sha1 numkeys key [key ...]
:執行已緩存的Lua腳本sha1
,其中numkeys
表示腳本中使用的鍵的數量,key
表示腳本中使用的鍵。系統管理
info [section]
:獲取Redis服務器的運行狀態信息,可以選擇查看特定部分的信息,如cpu
、memory
、persistence
等。monitor
:實時監控Redis服務器的所有操作命令。save
:執行SAVE或BGSAVE命令,將數據異步保存到磁盤。bgsave
:執行BGSAVE命令,將數據異步保存到磁盤。shutdown [save]
:關閉Redis服務器,可以選擇是否保存數據。lastsave
:返回最后一次執行SAVE或BGSAVE命令的時間戳。flushdb
:清空當前數據庫。flushall
:清空所有數據庫。dbsize
:返回當前數據庫中鍵的數量。keys pattern
:查找所有符合給定模式的鍵。scan key [match pattern] [count count]
:迭代當前數據庫中的鍵,返回匹配給定模式的鍵及其值。object encoding key
:獲取鍵key
的編碼類型。object refcount key
:獲取鍵key
的引用計數。object Dumper key
:以字符串形式返回鍵key
的值及其類型。config get setting
:獲取Redis服務器的配置參數值。config set setting value
:設置Redis服務器的配置參數值。config rewrite
:重寫Redis服務器的配置文件。save
:同步保存數據到磁盤。bgrewriteaof
:異步重寫AOF文件。client list
:列出所有連接到Redis服務器的客戶端。client kill ip port
:終止與指定IP地址和端口相關的客戶端連接。client pause milliseconds
:暫停指定毫秒數,期間所有客戶端的請求將被掛起。client unpause
:取消暫停客戶端請求。cluster nodes
:獲取集群中所有節點的信息。cluster create node-id master-ip master-port [cluster-enabled yes [cluster-config-file config-file] [cluster-node-timeout milliseconds]]
:創建一個新的Redis集群節點。cluster add-node node-id master-ip master-port [cluster-enabled yes]
:將一個節點添加到現有的Redis集群中。cluster failover master-id [slaveof new-master-id new-master-ip new-master-port]
:對指定的主節點執行故障轉移。cluster reset node-id [force yes]
:重置指定節點的狀態,可以選擇是否強制執行。cluster rebalance
:重新平衡集群中的節點。cluster save-config
:保存當前集群的配置到配置文件。cluster node-timeout milliseconds
:設置集群節點的超時時間(單位:毫秒)。cluster wait-for-slaveof-to-stop node-id [master-id]
:等待指定節點停止作為從節點。cluster skip-full-slots-check
:跳過對槽位的完整性檢查。cluster set-config-file config-file
:設置集群的配置文件路徑。cluster get-config-file
:獲取集群的配置文件路徑。cluster flush-slots
:清空所有槽位。cluster fix
:修復集群中的不一致問題。cluster save-slots
:保存當前槽位信息到磁盤。cluster load-slot-from-checkpoint slot-number
:從檢查點加載槽位信息。