Redis知識梳理 21 Info指令

2021-09-22 01:46:13 字數 2877 閱讀 1873

info 指令顯示的資訊繁多,分為 9大塊,每個塊都有非常多的引數,這 9大塊如下。

​ 1. server:伺服器執行的環境引數 。

2. clients: 客戶端相關資訊。

3. memory: 伺服器執行記憶體統計資料。

4. persistence:持久化資訊 。

5. stats:通用統計資料 。

6. replication:主從複製相關資訊 。

7. cpu: cpu使用情況。

8 . cluster: 集群資訊。

9. keyspace: 鍵值對統計數量資訊。

info 可以一次性獲取所有的資訊,也可 以接塊獲取資訊。

這個資訊在 stats 塊裡,可以通過 info stats 看到。

# ops_per_sec: operations per second,也就是每秒運算元

> redis-cli info stats |grep ops

instantaneous_ops_per_sec:789

以上表示 ops 是 789,也就是所有客戶端每秒會傳送 789 條指令到伺服器執行。 在極限情況下, redis 可以每秒執行 10 萬次指令, cpu 幾乎被完全榨乾。如果 ops 過高,可以考慮通過 monitor 指令快速觀察一下究竟是哪些 k巳y 被訪問得比較頻繁 ,從而在相應的業務上進行優化,以減少 io 次數。 monitor 指令會瞬間吐出巨量的指令文字,所以般在執行 monitor後立即使用 ctrl+c 中斷輸出。

> redis-cli monitor

這個資訊在 clients 塊裡,可以通過 info clients 看到。

> redis-cli info clients

# clients

connected_clients:124 # 這個就是正在連線的客戶端數量

client_longest_output_list:0

client_biggest_input_buf:0

blocked_clients:0

這個資訊也是比較有用的,通過觀察這個數量可以確定是否存在意料之外的連 接。如果發現這個數量不對勁,接著就可以使用 client list 指令列出所有的客 戶端鏈結位址來確定源頭.

關於客戶端的數量還有個重要的引數需要觀察,那就是rejected_connections,它表示因為超出最大連線數限制而被拒絕的客戶端連線次數,如果這個數字很大,意味著伺服器的最大連線數設定的過低需要調整maxclients引數。

這個資訊在 memory 塊裡,可以通過 info memory 看到。

> redis-cli info memory | grep used | grep

human used_memory_human:827.46k # 記憶體分配器 (jemalloc) 從作業系統分配的記憶體總量

used_memory_rss_human:3.61m # 作業系統看到的記憶體占用 ,top 命令看到的記憶體

used_memory_peak_human:829.41k # redis 記憶體消耗的峰值

used_memory_lua_human:37.00k # lua 指令碼引擎占用的記憶體大小

如果單個 redis 記憶體占用過大,並且在業務上沒有太多壓縮的空間的話,可以考 慮集群化了。

這個資訊在 replication 塊裡,可以通過 info replication 看到。

> redis-cli info replication |grep backlog

repl_backlog_active:0

repl_backlog_size:1048576 # 這個就是積壓緩衝區大小

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

複製積壓緩衝區大小非常重要,它嚴重影響到主從複製的效率。當從庫因為網路 原因臨時斷開了主庫的複製,然後網路恢復了,又重新連上的時候,這段斷開的時間內發生在 master 上的修改操作指令都會放在積壓緩衝區中,這樣從庫可以通過積壓緩衝區恢復中斷的主從同步過程。

積壓緩衝區是環形的,後來的指令會覆蓋掉前面的內容。如果從庫斷開的時間過 長,或者緩衝區的大小設定的太小,都會導致從庫無法快速恢復中斷的主從同步 過程,因為中間的修改指令被覆蓋掉了。這時候從庫就會進行全量同步模式,非 常耗費 cpu 和網路資源。

如果有多個從庫複製,積壓緩衝區是共享的,它不會因為從庫過多而線性增長。 如果例項的修改指令請求很頻繁,那就把積壓緩衝區調大一些,幾十個 m 大小 差不多了,如果很閒,那就設定為幾個 m。

> redis-cli info stats | grep sync

sync_full:0

sync_partial_ok:0

sync_partial_err:0 # 半同步失敗次數

通過檢視 sync_partial_err 變數的次數來決定是否需要擴大積壓緩衝區,它表 示主從半同步複製失敗的次數。

高階 Redis 知識梳理

1 什麼是nosql nosql 統稱 泛指非關係型的資料庫,nosql即not only sql,它可以作為關係型資料庫的良好補充。2 nosql資料庫的四大分類如下 鍵值 key value 儲存資料庫 相關產品 tokyo cabinet tyrant redis voldemort berk...

redis知識點梳理

微博點贊,收藏,標籤 關注模型 zset set集合運算 zset集合運算 在jedis中分布式鎖實現 依然無法解決機率鎖失效的問題 public string lock int stock integer.parseint stringredistemplate.opsforvalue get s...

Redis知識梳理 31 緊湊列表

redis 5.0 又引入了乙個新的資料結構 listpack,它是對 ziplist 結構的改進,在 儲存空間上會更加節省,而且結構上也比 ziplist 要精簡。它的整體形式和 ziplist 還是比較接近的,如果你認真閱讀了 ziplist 的內部結構分析,那麼 listpack 也是比較容易...