redis運維命令及參數整理

redis做爲一個服務,和普通的oracle,mysql服務器運維維護和系統調優是同樣的。html

關注內存,CPU,網絡IO,阻塞等。因爲不會涉及複雜的SQL業務邏輯,缺乏SQL調優這一塊。mysql

1.經過INFO命令,要清楚瞭解服務器的現狀。
參照:http://redisdoc.com/server/info.htmlgit

section
server
記錄了 Redis 服務器的信息
clients 記錄了已鏈接客戶端的信息(確認併發狀況,繁忙程度)
memory
記錄了服務器的內存信息   (確認內存消耗,內存碎片)
persistence 記錄了跟 RDB 持久化和 AOF 持久化有關的信息(確認是否引發性能IO)
stat 通常統計信息(確認併發狀況,繁忙程度,命中率)
replication
 主/從複製信息(同步狀況)
cpu
 CPU 的計算量統計信息
keyspace
記錄了數據庫相關的統計信息

wKioL1fLiDuwx0ejAACAhna4SLw597.png

wKiom1fLiDyiSjnuAABYdTVVtKE116.png

wKioL1fLiDaS4ZNAAAAeldUarlA893.png

wKiom1fLiDfRYzCUAAAmuS6iyDg213.png

wKioL1fLiDeiDkZhAABRNbUpQX8873.png

wKiom1fLiDmyLFiHAACM5fCnqoc586.png

wKiom1fLiDmT7TAfAABSkd5PY_4888.png

2.經常使用運維操做redis

#探測服務是否可用
[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/]sql

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監控日誌。數據庫


通常處理(發現問題)流程bash

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
#獲取慢查詢日誌條數+
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

相關文章
相關標籤/搜索