天天看點

redis運維指令及參數整理

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>

記錄了資料庫相關的統計資訊

redis運維指令及參數整理
redis運維指令及參數整理
redis運維指令及參數整理
redis運維指令及參數整理
redis運維指令及參數整理
redis運維指令及參數整理
redis運維指令及參數整理

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&gt; 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

繼續閱讀