Redis運(yùn)維之shell的使用——統(tǒng)計內(nèi)存、定期備份、基準(zhǔn)測試

使用redis shell可以完成許多有意思的操作,使用也非常的簡單,下面開始介紹。

redis-cli

redis-cli的選項非常多,除了常用的-h、-p、-a外,下面在介紹幾個很常用的選項。想查看所有選項的話可以使用redis-cli –help查看。

–version查看redis版本

#?redis-cli?--version redis-cli?5.0.5

可以看到我當(dāng)前的版本是5.0.5

-r,-i

r是repeat的縮寫,表示重復(fù)幾次的意思。i是interval的縮寫,表示間隔多久(單位為妙)。

比如執(zhí)行ping命令,共執(zhí)行3次,每隔一秒執(zhí)行一次。

#?redis-cli?-r?3?-i?1?ping

另外我們再介紹一個redis的api info memory,它是用來統(tǒng)計redis內(nèi)存使用情況的。

#?redis-cli?info?memory #?Memory used_memory:878984 used_memory_human:858.38K used_memory_rss:3796992 used_memory_rss_human:3.62M ……

統(tǒng)計redis內(nèi)存信息

介紹了上面的知識后,再結(jié)合shell基礎(chǔ),就可以寫出一個統(tǒng)計redis內(nèi)存占用的腳本了。

shell腳本如下,每5秒獲取內(nèi)存信息,共取6次。

#!/bin/bash memorys=`redis-cli?-r?6?-i?5??info?memory?|?grep?used_memory: ????|?awk?-F:?'{print?int($2)}'` total=0 for?memory?in?$memorys do ????echo?$memory ????total=$((memory+total)) done  echo?"avg:"$((total/6))

有一個地方需要注意,在awk那行,需要用int轉(zhuǎn)換為數(shù)字類型,否則循環(huán)里面的遞增將會出錯,必須保證變量memory是數(shù)字類型的。腳本的執(zhí)行結(jié)果如下:

#?./bin/redis-used-memory.sh? 883480 883504 883504 883504 883504 883504 avg:883500

分別輸出6個請求的數(shù)據(jù),最后再打印出平均值。

–rdb 保存rdb文件到本地

有個該選項,再配合定時任務(wù),我們就可以定期備份Redis數(shù)據(jù)。

#?redis-cli?--rdb?/data/redis/rdb/dump.rdb SYNC?sent?to?master,?writing?721?bytes?to?'/data/redis/rdb/dump.rdb' Transfer?finished?with?success.

如果redis含有重要數(shù)據(jù)的話,那么建議定時備份數(shù)據(jù),防止數(shù)據(jù)丟失后損失太大。

Redis-benchmark

redis有專門做基準(zhǔn)測試的工具,我們可以用它來測試redis的性能。下面介紹幾個常用選項。如想知道更多的選項的用法,使用redis-benchmark –help查看更多信息

-c(clients)

表示客戶端的并發(fā)數(shù)量,默認(rèn)為50.

-n(requests)

表示客戶端請求總量,默認(rèn)值為100000。

例如,有100個客戶端,總請求數(shù)為10000.

#?redis-benchmark?-c?100?-n?10000

-q

只顯示每秒的請求數(shù)據(jù)

redis-benchmark?-c?100?-n?10000?-q? PING_INLINE:?98039.22?requests?per?second PING_BULK:?102040.82?requests?per?second SET:?94339.62?requests?per?second GET:?99009.90?requests?per?second ……

可以看到,每秒set、get等命令的性能。

-t

對指定的命令進(jìn)行基準(zhǔn)測試,比如我只想看get和set的性能如何:

#?redis-benchmark?-t?get,set?-q SET:?98911.96?requests?per?second GET:?100200.40?requests?per?second

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享