redis運維基礎

一、 常見故障分析

1. 內存過高分析

  • info 命令查看key總數是否大量增加,佔用內存是否大量增加
  • redis-cli -h host -p port client list | grep -v "omem=0",查詢輸出緩衝區不爲0的客戶端連接,omem字段爲佔用的內存量(B),cmd字段爲命令,從client_longest_output_list看是否輸出緩衝區佔用內存較大,也就是有大量的數據從Redis服務器向某些客戶端輸出。參考 https://carlosfu.iteye.com/blog/2254571

 

2. CPU高分析

client list中後面有命令,具體的話就要看monitor(monitor消耗cpu也高,不能執行太久)。client list就是看執行那一時間點的,monitor就全些。

看都執行了什麼命令(看cmd=部分),有沒有消耗CPU的一些異常命令。一般引起CPU高都是一下子取很多值的,從之前的異常排查來看,還是getall,keys *這類的命令最消耗CPU

新建連接和每秒的操作數量增加也會CPU增加

 

3. 壓測時主要關注項

  • 慢日誌:slowlog get
  • ops數:info stats,查看 instantaneous_ops_per_sec 指標。一般可以支撐每秒6到8K,如果只有幾百幾十,說明操作很少,那一般就不是redis的問題

 

二、 常用命令

1. 啓停命令

Linux啓動
$redis-server $REDIS_DATA/conf/redis.conf

Windows啓動
$redis-server –-console

Windows && Linux停止
$redis-cli –p port –a passwd shutdown save

 

2. 實例管理

檢查連接情況
client list

庫中KEY的數量
info keyspace

檢查主從同步狀態,看master_link_status,slave_repl_offset與master_repl_offset
info replication

DB中鍵的數量
dbsize

切換數據庫(redis用數字作爲多個數據庫的實現,默認16個,編號爲0-15)
select db號

清除所有數據庫(高危)
flushall

清除當前數據庫(高危)
flushdb

 

3. 慢查詢

兩個參數

  • slowlog-log-slower-than 10000   慢查詢捕獲閾值(默認10000微秒)                     
  • slowlog-max-len 128                   慢日誌最多存儲條數(默認128,超過後先進先出)

獲取慢日誌

  • slowlog get [n]   n指定條數

慢日誌格式

  • 慢查詢日誌標識id
  • 發生時間戳
  • 命令耗時(微秒)
  • 執行命令
  • 命令參數

獲取慢日誌列表長度

  • slowlog len

慢日誌重置

  • slowlog reset


4. 配置管理

支持兩種修改配置方法:

  • 改配置文件
  • config set 動態修改,並將配置持久化到本地文件
-- 參數設置
config set slowlog-max-len 1000
-- 將配置持久化到本地文件
config rewrite

獲取配置信息

  • CONFIG GET CONFIG_SETTING_NAME

獲取所有配置

  • CONFIG GET *

 

5. 客戶端相關

列出連接到redis服務端的客戶端信息                

  • client list(執行較慢,連接數較多時頻繁執行可能阻塞redis)
  • info clients(執行較快,不能精確定位到所有客戶端,只能顯示輸入緩衝區最大值)

設置客戶端名

  • client setName xx
  • client getName

殺掉指定IP地址和端口的客戶端

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