Redis學習手冊二:服務器管理

一、概述

Redis在設計之初就被定義爲長時間不間斷運行的服務進程,因此大多數系統配置參數都可以在不重新啓動進程的情況下立即生效。即便是將當前的持久化模式從AOF切換到RDB也無需重啓。

在Redis中,提供了一組和服務器管理相關的命令,其中就包含和參數設置有關的CONFIG SET/GET command。

二、相關命令列表

命令格式命令描述返回值
INFO [section]

獲取Redis服務器運行狀態相關統計信息,section相關參數包含如下:

1、server:顯示Redis服務器信息,包含redis_version、os、arch_bits、gcc_versi on、process_id、tcp_port、uptime_in_seconds等

2、clients:顯示已連接客戶端信息,包含有connected_clients、client_longest_o utput_list、client_longest_input_buf、blocked_clients等

3、memory:顯示內存統計信息,包含有used_memory、used_memory_human、used_memory_ rss、used_memory_peak、used_memory_peak_human、used_memory_lua、mem_ fragmentation_ratio、mem_allocator等

4、persistent:顯示RDB和AOF相關統計信息

5、stats:顯示一般統計信息

6、replication:顯示主從複製信息

7、cpu:顯示cpu計算量統計信息

8、commandstats:顯示redis命令統計信息

9、cluster:顯示集羣相關統計信息

10、keyspace:顯示數據庫相關統計信息

11、all:顯示所有的Redis統計信息

12、default:顯示默認選擇的統計信息

示例如:info all;info replication


FLUSHALL清空Redis所有數據庫中的所有keyOK
FLUSHDB清空當前數據庫中的所有keyOK
DBSIZE返回當前數據庫的key的數量

SLAVEOF host

port

該命令用於在Redis 運行時動態地修改複製(replication)功能的行爲。如果一個Redis服務器已經處於SLAVE狀態,SLAVEOF NO ONE命令將關閉當前服務器的被複制狀態,與此同時將該服務器切換到MASTER狀態。該命令的參數將指定MASTER服務器的監聽IP和端口。還有一種情況是,當前服務器已經是另外一臺MASTER的SLAVE了,在執行該命令後,當前服務器將終止和之前MASTER之間的複製關係,而將成爲新MASTER的SLAVE,之前MASTER中的數據也將被清空,改爲新MASTER中的數據。然而如果在當前SLAVE服務器上執行的SLAVEOF NO ONE命令,那麼該服務器只是中斷與當前MASTER的複製關係,並升級爲獨立的MASTER,其中的數據也不會被清空

示例:SLAVEOF 10.23.16.226 6579SLAVEOF NO ONE

OK
CONFIG GET parameter

該命令用於獲取Redis服務器的運行配置參數。在2.4版本中,該命令有部分參數無法獲取,但是在2.6版本以後所有參數都可以獲取。該命令接受glob風格的模式匹配規則,因此如果參數中包含模式元字符,那麼所有匹配的參數都將以key/value方式被列出。如果參數是*,那麼該命令支持的所有參數都將被列出。最後需要指出的是,和redis.conf中不同的是,在命令中不能使用數量縮寫格式,如GB、KB等,只能使用表示字節數量的整數值

示例:CONFIG GET s* -- 服務器就會返回所有以 s 開頭的配置參數及參數的值


CONFIG SET

parameter value

該命令可以動態地調整 Redis 服務器的配置而無須重啓。有些Redis版本可能存在有些參數不能修改,如果需要獲悉該命令支持哪些參數,可以查看CONFIG GET * 命令的執行結果。如果想在一個命令中設置多個同類型參數,如redis.conf配置文件中的save參數:save 900 1/save 300 10。在該命令中我們可以將多個key/value用雙引號括起,並用空格符隔開,如:config set save "900 1 300 10"

正常返回OK

否則報錯

CONFIG

RESETSTAT

重置INFO命令中的某些統計數據,包含有:

  • Keyspace hits (鍵空間命中次數)

  • Keyspace misses (鍵空間不命中次數)

  • Number of commands processed (執行命令的次數)

  • Number of connections received (連接服務器的次數)

  • Number of expired keys (過期key的數量)

  • Number of rejected connections (被拒絕的連接數量)

  • Latest fork(2) time(最後執行 fork(2) 的時間)

  • The aof_delayed_fsync counter(aof_delayed_fsync 計數器的值)

OK
SAVE
執行一次同步保存操作,將當前Redis實例的所有數據快照以RDB文件形式保存到硬盤。注意:一般情況下不要執行SAVE命令,因爲它會阻塞所有客戶端,保存數據庫的任務通常由BGSAVE命令異步執行。但是當保存數據的後臺進程不幸出現問題時,SAVE可以作爲保存數據的最後手段來使用。
OK
LASTSAVE返回最近一次 Redis 成功將數據保存到磁盤上的時間,以 UNIX 時間戳格式表示一個UNIX時間戳

SHUTDOWN

[SAVE|NOSAVE]

SHUTDOWN命令執行以下操作

  • 停止所有客戶端

  • 如果有至少一個保存點在等待,執行 SAVE 命令

  • 如果 AOF 選項被打開,更新 AOF 文件

  • 關閉 redis 服務器(server)

修飾詞SAVE、NOSAVE:

  • SHUTDOWN SAVE強制讓數據庫執行保存操作,即使沒有設定保存點

  • SHUTDOWN NOSAVE阻止數據庫執行保存操作,即使已經設定一個或多個保存點

失敗返回錯誤信息;

正常無任何信息反饋

TIME

返回當前服務器時間,示例:

redis > time

1) "1332395997" #當前時間(以 UNIX 時間戳格式表示)

2) "952581" #當前這一秒鐘已經逝去的微秒數


MONITOR實時打印出Redis服務器接收到的命令,調試用

OK

SLOWLOG

Slow log是Redis用來記錄查詢執行時間的日誌系統(執行時間是指不包括像客戶端響應(talking)、發送回覆等IO操作,而單單是執行一個查詢命令所耗費的時間);Slow log的行爲由兩個配置參數指定,可以通過改寫redis.conf或者用CONFIG GET和 CONFIG SET命令對它們動態地進行查看修改:

  • slowlog-log-slower-than:它決定要對執行時間大於多少微秒(microsecond,1秒 = 1,000,000 微秒)的查詢進行記錄

  • slowlog-max-len:它決定 slow log 最多能保存多少條日誌, slow log 本身是一個 FIFO 隊列,當隊列大小超過 slowlog-max-len 時,最舊的一條日誌將被刪除,而最新的一條日誌加入到 slow log ,以此類推

以下爲SLOWLOG的一些命令示例:

  • CONFIG SET slowlog-log-slower-than1000 #設置slow時間

  • CONFIG SET slowlog-max-len1000 #設置slow日誌條數

  • SLOWLOG GET #獲取slow日誌詳細信息

  • SLOWLOG LEN #獲取slow日誌數量

  • SLOWLOG RESET #清空slow日誌



ps:暫時整理到這裏,後續持續更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章