1. 程式人生 > >redis常用工具介紹

redis常用工具介紹

本文列舉了工作中常用的一些比較實用的redis工具,包括redis遷移工具redis-port、redis-migrate-tool,記憶體分析工具redis-rdb-tools,查詢分析工具redis-faina。

redis-port
github連結
https://github.com/CodisLabs/redis-port

介紹
<1>redis叢集的擴容與收縮
<2>資料異構同步,從redis到mysql等等
<3>redis原有叢集的拆分,按業務線打散成多個叢集
<4>redis當前記憶體使用,key佔比分析
<5>無用資料的檢測和清除
<6>對於rdb檔案的備份

原理
簡單來說,就是把自已偽裝成slave, 欺騙master來達到資料流同步的目地。
傳送sync命令->接收rdb->解析rdb->過濾->回放rdb->回放master推送的同步資料

注:這個工具我們主要用於將非redis叢集向redis cluster遷移,優點是支援指定字首keys的遷移,缺點是不支援實時向redis cluster遷移。

redis-migrate-tool


github連結
https://github.com/vipshop/redis-migrate-tool


特點:
<1>快速。
<2>多執行緒。
<3>基於redis複製。
<4>實時遷移。
<5>遷移過程中,源叢集不影響對外提供服務。
<6>異構遷移。
<7>支援Twemproxy叢集,redis cluster叢集,rdb檔案和aof檔案。
<8>過濾功能。
<9>當目標叢集是Twemproxy,資料會跳過Twemproxy直接匯入到後端的redis。
<10>遷移狀態顯示。
<11>完善的資料抽樣校驗。
遷移工具的來源可以是:單獨的redis例項,twemproxy叢集,redis cluster,rdb檔案,aof檔案。
遷移工具的目標可以是:單獨的redis例項,twemproxy叢集,redis cluster,rdb檔案。

注:這個工具我們主要用於將非redis叢集向redis cluster遷移,優點是支援實時遷移(程式可以採取雙寫策略彌補),缺點是不支援指定字首的keys遷移。

redis-rdb-tools


github連結
https://github.com/sripathikrishnan/redis-rdb-tools

介紹
解析redis的dump.rdb檔案,分析記憶體,以JSON格式匯出資料。
提供的功能有:
<1>生成記憶體報告
<2>轉儲檔案到JSON
<3>使用標準的diff工具比較兩個dump檔案
redis-rdb-tools是以python語言開發的。

注:這個工具我們主要用於分析redis記憶體使用情況,key樣品分佈

redis-faina
github連結
https://github.com/facebookarchive/redis-faina

介紹
redis-faina是由Instagram開發並開源的一個redis查詢分析小工具,它是通過redis的monitor命令來實現的,通過對在redis上執行的query進行監控,統計出一段時間的query特性。由於redis的monitor對效能有所影響,所以建議在使用時不要一直開啟monitor來分析。可以採用定時抽樣一段時間來做樣本分析。
redis-faina是以Python語言開發的。