Redis研究(十四)—管理工具

來源:互聯網
上載者:User

標籤:

     工欲善其事,必先利其器。在使用Redis的時候如果能夠有效利用Redis的各種管理工具,將會大大方便開發和管理。


一、 redis-cli

      相信大家對redis-cli已經很熟悉了,作為Redis內建的命令列用戶端,你可以從任何安裝有Redis的伺服器中找到它,所以對於管理Redis而言redis-cli是最簡單實用的工具。redis-cli可以執行大部分的Redis命令,包括查看資料庫資訊的INFO命令,更改資料庫設定的CONFIG命令和強制進行RDB快照的SAVE命令等,下面會介紹幾個管理Redis時非常有用的命令。


1.耗時命令日誌

       當一條命令執行時間超過限制時,Redis會將該命令的執行時間等資訊加入耗時命令日誌(slow log )以供開發人員查看。可以通過設定檔的slowlog-log-slower-than 參數設定這一限制,要注意單位是微秒(1000000微秒相當於1秒),預設值是10000。耗時命令日誌儲存在記憶體中,可以通過設定檔的slowlog-max-len 參數來限制記錄的條數。

      使用SLOWLOG GET命令來獲得當前的耗時命令日誌,如:

[html] view plaincopyprint?
  1. redis>SLOWLOG GET  
  2. 1) 1) (integer) 4  
  3. 2) (integer) 1356806413  
  4. 3) (integer) 58  
  5. 4) 1) "get"  
  6. 2) "foo"  
  7. 2) 1) (integer) 3  
  8. 2) (integer) 1356806408  
  9. 3) (integer ) 34  
  10. 4) 1) "set"  
  11. 2) "foo"  
  12. 3) "bar "  


每條日誌都由以下4個部分組成:
(1)該日誌唯一ID;
(2)該命令執行的UNIX時間;
(3)該命令的耗時時間,單位是微秒;
(4)命令及其參數。
為了產生一些耗時命令日誌作為示範,這裡將slowlog-log-slower-than 參數值設定為O,即記錄所有命令。如果設定為負數則會關閉耗時命令日誌。


2.命令監控

      Redis提供了MONITOR命令來監控Redis執行的所有命令,redis-cli同樣支援這個命令,如在redis-cli中執行MONITOR:

[html] view plaincopyprint?
  1. redis>MONITOR  
  2. OK  


      這時Redis執行的任何命令都會在redis-cli中列印出來,如我們開啟另一個redis-cli執行SET foo bar命令,在之前的redis-cli中會輸出如下內容:

[html] view plaincopyprint?
  1. 1356806981.885237 [0 127.0.0.1:57339] "SET" "foo" "bar  

   MONITOR命令非常影響Redis的效能,一個用戶端使用MONITOR命令會降低 Redis將近一半的負載能力。所以MONITOR命令只適合用來調試和錯誤修正。


    Instagram團隊開發了一個基於MONITOR命令的Redis查詢剖析器redis-faina。redis-faina可以根據MONITOR命令的監控結果分析出最常用的命令、訪問最頻繁的鍵等資訊,對瞭解Redis的使用方式協助很大。

    Instagram 是Facebook 旗下的圖片分享社區。redis-faina的項目地址是https://github.com/Instagram/redis-faina,直接下載其中的redis-faina.py檔案即可使用。

    redis-faina.py的輸入值為一段時間的MONITOR命令執行結果。例如:

[html] view plaincopyprint?
  1. redis-cli MONITOR | head -n  <要分析的命令數> | ./redis-faina.py  



二、 phpRedisAdmin


      當Redis中的鍵較多時,使用redis-cli管理資料並不是很方便,就如同管理MySQL時有人喜歡使用phpMyAdm in 一樣,Redis同樣有一個PHP開發的網頁端管理工具phpRedisAdmin 。phpRedisAdmin 支援以樹形結構查看鍵列表,編輯按鍵值,匯入/匯出資料庫資料,查看資料庫資訊和查看鍵資訊等功能。


1.安裝phpRedisAdmin

   安裝phpRedisAdmin 的方法如下:

[html] view plaincopyprint?
  1. git clone http s://github.com /ErikDubbelboer/phpRedisAdmin.git  
  2. cd phpRedisAdmin  


phpRedisAdmin 依賴PHP的Redis用戶端Predis,所以還需要執行下面兩個命令下載Predis:

[html] view plaincopyprint?
  1. git submodule init  
  2. git submodule update  


2.設定資料庫串連

     下載完phpRedisAdmin 後需要配置Redis的串連資訊。預設phpRedisAdmin 會串連到127.0.0.1,連接埠6379,如果需要更改或者添加資料庫資訊可以編輯includes檔案夾中的config.inc.php檔案。


3.使用phpRedisAdmin

     安裝PHP和Web伺服器(如Nginx),並將phpRedisAdmin檔案夾存放到網站目錄中即可訪問,

 

      phpRedisAdmin自動將Redis的鍵以“:”分隔並用樹形結構顯示出來,十分直觀。如post :1和post :2兩個鍵都在post樹中。
     點擊一個鍵後可以查看鍵的資訊,包括鍵的類型、存留時間及索引值,並且可以很方便地編輯。

4.效能
     phpRedisAdmin在擷取鍵列表時使用的是KEYS *命令,然後對所有的鍵使用TYPE命令來擷取其資料類型,所以當鍵非常多的時候效能並不高(對於一個有一百萬個鍵的Redis資料庫,在一台普通個人電腦上使用KEYS *命令大約會花費幾十毫秒)。由於Redis使用單線程處理命令,所以對生產環境下擁有大資料量的資料庫來說不適宜使用phpRedisAdmin管理.


三、 Rdbtools
       Rdbtools是一個Redis的快照檔案解析器,它可以根據快照檔案匯出JSON資料檔案、分析Redis中每個鍵的佔用空間情況等。Rdbtools是使用Python 開發的,項目地址是
https://github.com/sripathikrishnan/redis-rdb-tools。


1.安裝Rdbtools
使用如下命令安裝Rdbtools:

[html] view plaincopyprint?
  1. git clone https://github.com/sripathikrishnan/redis-rdb-tools  
  2. cd  redis-rdb-tools  
  3. sudo python setup.py instal l  


2.產生快照檔案
     如果沒有啟用RDB持久化,可以使用SAVE命令手動使Redis產生快照檔案。

3.將快照匯出為JSON格式
快照檔案是二進位格式,不利於查看,可以使用Rdbtools來將其匯出為JSON格式,命令如下:

[html] view plaincopyprint?
  1. rdb --command json /path/to/dump.rdb > output_file name.json  

其中/path/to/dump.rdb是快照檔案的路徑,output_filename.json 為要匯出的檔案路徑。

4.產生空間使用方式報告
     Rdbtools能夠將快照檔案中記錄的每個鍵的儲存情況匯出為CSV 檔案,可以將該CSV 檔案匯入到Excel等資料分析工具中分析來瞭解Redis的使用方式。命令如下:

[html] view plaincopyprint?
    1. rdb -c memory /path/to/dump.rdb > output_filename.csv 
    2. http://www.youyuanapp.com/thread-11419-1-1.html
      http://www.youyuanapp.com/thread-11418-1-1.html
      http://www.youyuanapp.com/thread-11417-1-1.html
      http://www.youyuanapp.com/thread-11412-1-1.html
      http://www.youyuanapp.com/thread-11409-1-1.html
      http://www.youyuanapp.com/thread-11404-1-1.html
      http://www.youyuanapp.com/thread-11403-1-1.html
      http://www.youyuanapp.com/thread-11398-1-1.html
      http://www.youyuanapp.com/thread-11397-1-1.html
      http://www.youyuanapp.com/thread-11395-1-1.html
      http://yishujiayuanq.blog.163.com/blog/static/2447250612015025101147963/
      http://yishujiayuanq.blog.163.com/blog/static/2447250612015025101251829/
      http://yishujiayuanq.blog.163.com/blog/static/244725061201502510133740/
      http://yishujiayuanq.blog.163.com/blog/static/2447250612015025101653328/
      http://yishujiayuanq.blog.163.com/blog/static/2447250612015025101718995/
      http://yishujiayuanq.blog.163.com/blog/static/2447250612015025101738627/
      http://yishujiayuanq.blog.163.com/blog/static/2447250612015025101822599/
      http://yishujiayuanq.blog.163.com/blog/static/2447250612015025101841318/
      http://yishujiayuanq.blog.163.com/blog/static/2447250612015025101927982/
      http://yishujiayuanq.blog.163.com/blog/static/244725061201502510197287/

Redis研究(十四)—管理工具

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.