????????盡管現(xiàn)在阿里云騰訊云已經(jīng)提供了非常方便的Redis服務(wù)催什,但相信大部分人和公司都有著自己搭建Redis服務(wù)器的經(jīng)歷柴我,如果你是一個后臺開發(fā)或者運(yùn)維工程師痴脾,就常常有這樣的需求纱控,Redis運(yùn)行情況如何,占用內(nèi)存多少酸钦,流量有沒有異常怪得?如果能夠開發(fā)一款可視化的工具,那么對我們?nèi)粘5墓ぷ鲿袠O大的幫助。今天汇恤,我們來學(xué)習(xí)下一個Redis的命令,info拔恰。只要掌握了這個命令因谎,相信你也能夠開發(fā)一款自己的Redis可視化監(jiān)控工具。
? ? ? ?Redis info命令非常的簡單颜懊,只要打出info命令即可财岔,就可以展示出非常多的內(nèi)容,主要分為下面幾個模塊河爹。
Server模塊匠璧,主要是Redis服務(wù)器上面的服務(wù)器信息:
? ? ? ?例如系統(tǒng)的版本,服務(wù)器的版本咸这,gcc的版本等夷恍。
Client模塊,主要用來展示一些客戶端的信息:
? ? ? ?包括我們常用的查看有多少個客戶端連接媳维,有多少個客戶端正在阻塞等待酿雪,最大最小的輸入輸出buffer是多少。
? ? ? ?通過這個監(jiān)控項(xiàng)侄刽,我們可以很輕松的發(fā)現(xiàn)指黎,Redis中是否存在大Value的數(shù)據(jù),如果數(shù)據(jù)過大州丹,可能會降低性能醋安。
Memory模塊,顧名思義墓毒,這是一些內(nèi)存信息吓揪。
? ? ? ?通過這個命令,你可以看到Redis的占用的內(nèi)存大小蚁鳖,可以看到峰值數(shù)據(jù)磺芭,這是一項(xiàng)非常重要的監(jiān)控,如果我們看到內(nèi)存使用非常大醉箕,并且沒有回落的趨勢钾腺,可以反思下業(yè)務(wù)是否沒有對可刪除的數(shù)據(jù)設(shè)置過期時間等等。
Persistence模塊讥裤,這個是持久化信息放棒。
? ? ? ?之前我們說到,Redis是可以持久化存儲的己英,配置就在這里间螟。常用的配置有最近一次持久化有沒有成功?最近的持久化耗時多久。當(dāng)我們監(jiān)控到持久化耗時過長甚至失敗的時候厢破,就要考慮集群拆分單個Redis的規(guī)模了荣瑟。
Stats模塊,用來統(tǒng)計(jì)通用的數(shù)據(jù)摩泪,例如每秒鐘數(shù)據(jù)的量笆焰,每秒鐘的并發(fā)數(shù),命中數(shù)等等等见坑。
? ? ? ? ?是一個非常非常實(shí)用的統(tǒng)計(jì)數(shù)據(jù)嚷掠,通過這個統(tǒng)計(jì)數(shù)據(jù),我們可以看到Redis的服務(wù)情況荞驴。
? ? ? ? 除此之外不皆,Replication是主從同步的信息,CPU是CPU的統(tǒng)計(jì)信息熊楼,Cluster是Redis以Cluster部署的時候霹娄,集群的相關(guān)信息。
? ? ? ?掌握了這些基礎(chǔ)的統(tǒng)計(jì)項(xiàng)鲫骗,我們只要簡單地寫個心跳的程序项棠,將定時心跳的結(jié)果存放到數(shù)據(jù)庫之中,再寫一個簡單的網(wǎng)頁挎峦,把數(shù)據(jù)的結(jié)果通過表格的形式展示出來香追,就是一個可用的Redis可視化監(jiān)控系統(tǒng)了。當(dāng)然坦胶,一個好的監(jiān)控系統(tǒng)透典,除了要展示數(shù)據(jù),還要增加告警顿苇、數(shù)據(jù)對比等功能峭咒,才會變得更加實(shí)用。
? 好了纪岁,今天我們介紹到這里凑队,如果你們公司的Redis沒有監(jiān)控,不如嘗試手寫一個吧幔翰。一個會動手的開發(fā)才是一個好碼農(nóng)漩氨。歡迎大家關(guān)注我,整理后會和大家繼續(xù)分享遗增。大家的支持是我繼續(xù)嘮嗑的動力叫惊。