redis作為一個服務,和普通的oracle,mysql伺服器運維維護和系統調優是一樣的。
關注記憶體,CPU,網絡IO,阻塞等。由于不會涉及複雜的SQL業務邏輯,缺少SQL調優這一塊。
1.通過INFO指令,要清楚了解伺服器的現狀。
參照:http://redisdoc.com/server/info.html
section
<code>server</code>
記錄了 Redis 伺服器的資訊
clients
記錄了已連接配接用戶端的資訊(确認并發情況,繁忙程度)
<code>memory</code>
記錄了伺服器的記憶體資訊 (确認記憶體消耗,記憶體碎片)
persistence
記錄了跟 <code>RDB</code> 持久化和 <code>AOF</code> 持久化有關的資訊(确認是否引起性能IO)
<code>stat</code>
一般統計資訊(确認并發情況,繁忙程度,命中率)
replication
主/從複制資訊(同步情況)
<code>cpu</code>
CPU 的計算量統計資訊
<code>keyspace</code>
記錄了資料庫相關的統計資訊
2.常用運維操作
以下内容來自[http://www.cnblogs.com/gnuhpc/]
1.10 模拟當機 redis-cli debug segfault 1.11 模拟hang redis-cli -p 6379 DEBUG sleep 30 1.12 重命名指令 rename-command,例如:rename-command FLUSHALL ""。必須重新開機。 1.13 執行lua腳本 - -eval 。例如: redis-cli --eval myscript.lua key1 key2 , arg1 arg2 arg3 1.14 設定密碼 config set requirepass [passw0rd] 1.15 驗證密碼 auth passw0rd 1.16 性能測試指令 redis-benchmark -n 100000 1.17 擷取慢查詢 SLOWLOG GET 10 結果為查詢ID、發生時間、運作時長和原指令 1.18 檢視日志 日志位置在/redis/log下,redis.log為redis主日志,sentinel.log為sentinel監控日志。
一般處理(發現問題)流程
1
探測服務是否可用
127.0.0.1:6379> ping
2
探測服務延遲
redis-cli --latency 顯示的機關是milliseconds,作為參考,千兆網一跳一般延遲為0.16ms左右
3
監控正在請求執行的指令
在cli下執行monitor,生産環境慎用。
4
檢視統計資訊
info
5
擷取慢查詢
結果為查詢ID、發生時間、運作時長和原指令 預設10毫秒,預設隻保留最後的128條。單線程的模型下,一個請求占掉10毫秒是件大事情,注意設定和顯示的機關為微秒,注意這個時間是不包含網絡延遲的。
slowlog get
#擷取慢查詢日志
slowlog len
#擷取慢查詢日志條數+
slowlog reset
6
檢視用戶端
client list
列出所有連接配接
client kill
殺死某個連接配接, 例如CLIENT KILL 127.0.0.1:43501
client getname #
擷取連接配接的名稱 預設nil
client setname "名稱"
設定連接配接名稱,便于調試
7
檢視日志
參考資源
http://www.cnblogs.com/gnuhpc/p/4609592.html
https://gnuhpc.gitbooks.io