本章對Redis的系統狀态資訊(info指令結果)和Redis的所有配置 (包括Standalone、Sentinel、Cluster三種模式)做一個全面的梳理,協助大家分析和解決日常開發和運維中遇到的問題
主要内容如下:
·info系統狀态說明。
·Standalone配置說明。
·Sentinel配置說明。
·Cluster配置說明。
一.info系統狀态說明
1 指令說明
info指令的使用方法有以下三種:
·info:部分Redis系統狀态統計資訊。
·info all:全部Redis系統狀态統計資訊。
·info section:某一塊的系統狀态統計資訊,其中section可以忽略大小寫。
例如,隻對Redis的記憶體相關統計比較感興趣,可以執行info memory, 此時section=memory,下面是info memory的結果:
127.0.0.1:6379> info memory
# Memory
used_memory:5209229784
used_memory_human:4.85G
used_memory_rss:6255316992
used_memory_peak:5828761544
used_memory_peak_human:5.43G
used_memory_lua:36864
mem_fragmentation_ratio:1.20
mem_allocator:jemalloc-3.6.0
在運維的時候發現用戶端有些異常,可以執行info clients,如以下資訊反映了輸出緩沖區存在溢出的情況:
127.0.0.1:6379> info clients
# Clients
connected_clients:225
client_longest_output_list:245639
client_biggest_input_buf:0
blocked_clients:0
info all指令包含Redis最全的系統狀态資訊,下表是info all指令涉及的所有section,其中每個子產品名就是我們上面提到的section,例如info Server 是檢視Redis服務的基本資訊。
子產品名 | 子產品含義 |
Server | 伺服器資訊 |
Clients | 用戶端資訊 |
Memory | 記憶體資訊 |
Persistence | 持久化資訊 |
Stats | 全局統計資訊 |
Replication | 複制資訊 |
CPU | CPU消耗資訊 |
Commandstats | 指令統計資訊 |
Cluster | 叢集資訊 |
Keyspace | 資料庫鍵統計資訊 |
2 詳細說明
下面對每個子產品進行詳細說明,為了更加友善解釋,直接結合線 上一個運作的Redis執行個體進行說明。
1.Server
下表是info Server子產品的統計資訊,包含了Redis服務本身的一些資訊,例如版本号、運作模式、作業系統的版本、TCP端口等。
info Server子產品統計資訊
2.Clients
下表是info Clients子產品的統計資訊,包含了連接配接數、阻塞指令連接配接數、輸入輸出緩沖區等相關統計資訊。
info Clients子產品統計資訊
3.Memory
下表是info Memory子產品的統計資訊,包含了Redis記憶體使用、系統記憶體使用、碎片率、記憶體配置設定器等相關統計資訊。
info Memory子產品統計資訊
4.Persistence
下表是info Persistence子產品的統計資訊,包含了RDB和AOF兩種持久化的一些統計資訊。
info Persistence子產品統計資訊
5.Stats
下表是info Stats子產品的統計資訊,是Redis的基礎統計資訊,包含了:連接配接、指令、網絡、過期、同步等很多統計資訊。
info Stats子產品統計資訊
6.Replication
下表是info Replication子產品的統計資訊,包含了Redis主從複制的一些統計資訊,根據主從節點,統計資訊也略有不同
info Replication子產品統計資訊
7.CPU
下表是info CPU子產品的統計資訊,包含了Redis程序和子程序對于CPU消耗的一些統計資訊。
info CPU子產品統計資訊
8.Commandstats
下表是info Commandstats子產品的統計資訊,是Redis指令統計資訊,包含各個指令的指令名、總次數、總耗時、平均耗時。
info Commandstats子產品統計資訊
9.Cluster
下表是info Cluster子產品的統計資訊,目前隻有一個統計資訊,辨別目前Redis是否為Cluster模式。
info Cluster子產品統計資訊
10.Keyspace
下表是info Keyspace子產品的統計資訊,包含了每個資料庫的鍵值統計資訊。
info Keyspace子產品統計資訊
關于這部分指令統計的内容在redis官網有詳細的說明,大家可以前往檢視https://redis.io/commands/info 包括指令傳回值及其含義
二.standalone配置說明和分析
相對于很多大型存儲系統,Redis的配置不是很多,到了Redis3.0之後有 60多個,雖然還是不多,但是每個配置都有很重要的作用和意義,下面對Redis單機模式下的所有配置進行說明:
1 總體配置
下表是Redis的一些總體配置,例如端口、日志、資料庫等。
總體配置
2 最大記憶體及政策
下表是Redis記憶體相關配置
記憶體相關配置
3 AOF相關配置
下表是AOF方式持久化相關配置
AOF相關配置
4 RDB相關配置
下表是RDB方式持久化相關配置
RDB相關配置
5 慢查詢配置
下表是Redis慢查詢相關配置
慢查詢相關配置
6 資料結構優化配置
下表是Redis資料結構優化的相關配置
資料結構優化相關配置
7 複制相關配置
下表是Redis複制相關的配置
複制相關配置
8 用戶端相關配置
下表是Redis用戶端的相關配置
用戶端相關配置
9 安全相關配置
下表是Redis安全的相關配置
安全相關配置
三.Sentinel配置說明和分析
Sentinel節點是特殊的Redis節點,有幾個特殊的配置,如下表所示:
Redis Sentinel節點配置說明
四.Cluster配置說明和分析
Cluster節點是特殊的Redis節點,有幾個特殊的配置,如下表所示:
Redis Cluster配置說明
以上二/三/四部分的配置redis的配置檔案redis.conf裡面都有,官方也提供了不同版本redis對應的配置檔案,大家可以前往檢視,對照明确每個配置的含義即可.https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf(該位址為redis4.0配置檔案的位址,比較卡,可能出現登不上的情況,也可直接下載下傳redis對應的版本内含有該配置檔案)