您好,登錄后才能下訂單哦!
redis作為一個服務,和普通的oracle,mysql服務器運維維護和系統調優是一樣的。
關注內存,CPU,網絡IO,阻塞等。由于不會涉及復雜的SQL業務邏輯,缺少SQL調優這一塊。
1.通過INFO命令,要清楚了解服務器的現狀。
參照:http://redisdoc.com/server/info.html
section | |
server | 記錄了 Redis 服務器的信息 |
clients | 記錄了已連接客戶端的信息(確認并發情況,繁忙程度) |
memory | 記錄了服務器的內存信息 (確認內存消耗,內存碎片) |
persistence | 記錄了跟 RDB 持久化和 AOF 持久化有關的信息(確認是否引起性能IO) |
stat | 一般統計信息(確認并發情況,繁忙程度,命中率) |
replication | 主/從復制信息(同步情況) |
cpu | CPU 的計算量統計信息 |
keyspace | 記錄了數據庫相關的統計信息 |
2.常用運維操作
#探測服務是否可用 [root@hadoop2 redis]# bin/redis-cli 127.0.0.1:6379> ping PONG #監控redis請求執行信息 127.0.0.1:6379> monitor OK 1472956931.192969 [0 127.0.0.1:42936] "COMMAND" 1472956948.127475 [0 127.0.0.1:42936] "set" "title" "moniter" 1472956964.712026 [0 127.0.0.1:42936] "keys" "*" #查看redis數據庫統計信息 127.0.0.1:6379> info # Server redis_version:3.2.3 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:7994844ebb5a3a63 redis_mode:standalone ... #查看配置 127.0.0.1:6379> config get loglevel 1) "loglevel" 2) "notice" #臨時修改配置 127.0.0.1:6379> config set loglevel 111 (error) ERR Invalid argument '111' for CONFIG SET 'loglevel' 127.0.0.1:6379> config set loglevel debug OK #這會導致修改redis.conf文件 127.0.0.1:6379> config rewrite OK #批量執行操作 gnuhpc@gnuhpc:~$ (echo -en "ping\r\nset key abc\r\nget key\r\n";sleep 1) | nc 127.0.0.1 6379 +PONG +OK $3 abc 在一個腳本中批量執行多個寫入操作: 先把插入操作放入操作文本insert.dat: set a b set 1 2 set h w set f u 然后執行命令:cat insert.bat | ./redis-cli --pipe,或者如下腳本: #!/bin/sh host=$1 port=$; password=$3 cat insert.dat | ./redis-cli -h $host -p $port -a $password --pipe
以下內容來自[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 | 獲取慢查詢 | SLOWLOG GET 10 結果為查詢ID、發生時間、運行時長和原命令 默認10毫秒,默認只保留最后的128條。單線程的模型下,一個請求占掉10毫秒是件大事情,注意設置和顯示的單位為微秒,注意這個時間是不包含網絡延遲的。 slowlog get slowlog len |
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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。