自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Redis 實例對比工具之 Redis-full-check

存儲 存儲軟件 Redis
這篇文章給大家介紹一個 Redis 工具 redis-full-check,主要是用來校驗遷移數(shù)據(jù)過后的準確性,下面我們來看一下。

[[344636]]

本文轉載自微信公眾號「Java極客技術」,作者鴨血粉絲 。轉載本文請聯(lián)系Java極客技術公眾號。 

這篇文章給大家介紹一個 Redis 工具 redis-full-check,主要是用來校驗遷移數(shù)據(jù)過后的準確性,下面我們來看一下。

安裝

Redis-full-check 是阿里開源的一個工具,GitHub 地址 https://github.com/alibaba/RedisFullCheck,安裝前我們需要找一臺 Linux 機器,并且 GLIBC的版本需要高于 2.14,不然使用的時候會提示 /lib64/libc.so.6: version GLIBC_2.14 not found 。下載我們有兩種方式,第一種是在本地直接下載,然后上傳到服務器上面;另一個是直接在服務器上面執(zhí)行wget https://github.com/alibaba/RedisFullCheck/releases/download/release-v1.4.8-20200212/redis-full-check-1.4.8.tar.gz進行下載。下載完成過后解壓tar xzvf redis-full-check-1.4.8.tar.gz。具體的過程我們?nèi)缦逻M行:

1.檢查當前服務器的 GLIBC 版本,執(zhí)行命令strings /lib64/libc.so.6 |grep GLIBC_,如下圖,如果出現(xiàn)高于 2.14 的即可,如果沒有可以考慮換一臺服務器或者自己更新,但是更新有風險請謹慎,具體的更新方法自行百度;

 

2.下載壓縮包,執(zhí)行:wget https://github.com/alibaba/RedisFullCheck/releases/download/release-v1.4.8-20200212/redis-full-check-1.4.8.tar.gz 下載完成后解壓。阿粉這里已經(jīng)下過了, 就不重復下載了,解壓后進入目錄,輸入./redis-full-check -v 如果能正??吹桨姹咎柧驼f明下載安裝成功了。

 

使用

在使用這個工具之前,你需要的是兩臺不同的 Redis 實例,阿粉這邊因為是從單機切換到集群,所以已經(jīng)有了。下面就有單機和集群給大家演示。我們執(zhí)行如下命令:./redis-full-check -s "172.20.xxx.xxx:6379" -p "sourcePassword" --sourcedbfilterlist=0 -t "172.20.xxx.xxx:6379;172.20.yyy.yyy:6379" -a "targetPassword" --targetdbtype=1

 

說明:

  1. -s: 表示源 Redis 實例
  2. p:源 Redis 密碼
  3. --sourcedbfilterlist:匹配指定的 db 庫,單集 Redis 是可以設置特定 db 庫的,集群環(huán)境不行,根據(jù)自己的情況決定是否采用;
  4. -t:目標 Redis,阿粉這邊是集群所以會有多個節(jié)點,每個節(jié)點用分號隔開,另外注意文檔上說這里必須填寫所有的 master 節(jié)點或者所有的 slave 節(jié)點,不能混合填寫。阿粉這里填的都是 master 節(jié)點是成功,但是全部 slave 好像沒成功,大家可以自己試試。
  5. -a:表示目標 Redis 的密碼
  6. --targetdbtype=1:目標 Redis 環(huán)境的類型,0:db(standalone單節(jié)點、主從),1: cluster(集群版),2: 阿里云

詳細的參數(shù)如下:

  1. -s, --source=SOURCE               源redis庫地址(ip:port),如果是集群版,那么需要以分號(;)分割不同的db,只需要配置主或者從的其中之一。例如:10.1.1.1:1000;10.2.2.2:2000;10.3.3.3:3000。 
  2.  -p, --sourcepassword=Password     源redis庫密碼 
  3.      --sourceauthtype=AUTH-TYPE    源庫管理權限,開源reids下此參數(shù)無用。 
  4.      --sourcedbtype=               源庫的類別,0:db(standalone單節(jié)點、主從),1: cluster(集群版),2: 阿里云 
  5.      --sourcedbfilterlist=         源庫需要抓取的邏輯db白名單,以分號(;)分割,例如:0;5;15表示db0,db5和db15都會被抓取 
  6.  -t, --target=TARGET               目的redis庫地址(ip:port) 
  7.  -a, --targetpassword=Password     目的redis庫密碼 
  8.      --targetauthtype=AUTH-TYPE    目的庫管理權限,開源reids下此參數(shù)無用。 
  9.      --targetdbtype=               參考sourcedbtype 
  10.      --targetdbfilterlist=         參考sourcedbfilterlist 
  11.  -d, --db=Sqlite3-DB-FILE          對于差異的key存儲的sqlite3 db的位置,默認result.db 
  12.      --comparetimes=COUNT          比較輪數(shù) 
  13.  -m, --comparemode=                比較模式,1表示全量比較,2表示只對比value的長度,3只對比key是否存在,4全量比較的情況下,忽略大key的比較 
  14.      --id=                         用于打metric 
  15.      --jobid=                      用于打metric 
  16.      --taskid=                     用于打metric 
  17.  -q, --qps=                        qps限速閾值 
  18.      --interval=Second             每輪之間的時間間隔 
  19.      --batchcount=COUNT            批量聚合的數(shù)量 
  20.      --parallel=COUNT              比較的并發(fā)協(xié)程數(shù),默認5 
  21.      --log=FILE                    log文件 
  22.      --result=FILE                 不一致結果記錄到result文件中,格式:'db    diff-type    key    field' 
  23.      --metric=FILE                 metric文件 
  24.      --bigkeythreshold=COUNT       大key拆分的閾值,用于comparemode=4 
  25.  -f, --filterlist=FILTER           需要比較的key列表,以分號(;)分割。例如:"abc*|efg|m*"表示對比'abc', 'abc1', 'efg', 'm', 'mxyz',不對比'efgh', 'p'。 
  26.  -v, --version 

查看結果

執(zhí)行完上面的命令過后在當前目錄下會生成三個文件,分別是result.db.1,result.db.2,result.db.3。我們可以通過 sqlite3 工具進行查詢,如下所示:

 

通過sqlite3 result.db.3 命令進入終端,然后從 key 表中查詢我們需要的數(shù)據(jù)。sqlite3 工具是一個類似 MySQL 的數(shù)據(jù)庫,大家可以自己研究下如何使用,后面有機會阿粉再跟大家分享。

從上面的圖中可以發(fā)現(xiàn),這個結果看起來很難受,阿粉再教大家?guī)渍?,讓看起來爽一點!進入終端后我們依次輸入下面圖中命令

 

  1. .header on 打開表頭,id 只是序號,key 表示源 Redis 中的 key,type 表示類型,db 表示 key 所在的源 Redis 的 db 庫,source_len,和 target_len 分別表示在源 Redis 和目標 Redis 的中 value 的長度。我們可以通過長度來快速查看不同的數(shù)據(jù)。
  2. .mode column 設置輸出模式
  3. .widht int int... 設置每列顯示的長度,更美觀
  4. .quit 退出終端

通過這個輸出結果我們可以明顯的看出哪些數(shù)據(jù)是不一致的,從而對比兩個 Redis 實例的數(shù)據(jù),需要注意的是 Redis-full-check 對比的是源實例是否是目標實例的子集!

 

總結

今天阿粉給大家介紹了一個 Redis 實例數(shù)據(jù)對比的工具,能真正在生產(chǎn)上使用的一個阿里開源的很優(yōu)秀的工具,希望對大家有幫助!具體的更多使用細節(jié),大家可以自己研究研究,一個好的工具值得好好深入研究。

 

責任編輯:武曉燕 來源: Java極客技術
相關推薦

2017-06-07 14:58:39

Redis源碼學習Redis事務

2024-04-18 08:00:00

2015-12-28 10:48:44

RedisSpring緩存實例

2021-05-28 10:40:08

Redis數(shù)據(jù)庫集群化

2013-03-20 10:19:17

RedisRedis-senti監(jiān)控

2020-05-27 20:45:31

Redis底層數(shù)據(jù)

2024-08-27 08:29:49

2022-08-27 21:37:57

PrometheusRedis?監(jiān)控

2022-12-22 07:40:28

2021-09-28 09:36:13

redisHash結構

2014-08-01 13:40:50

R語言

2019-03-20 15:59:11

NoSQLRedis數(shù)據(jù)庫

2021-03-23 08:39:27

SpringBootRedis管道技術

2011-07-15 09:11:39

MySQLMongoDB

2021-04-11 09:51:25

Redis可視化工具

2013-07-24 18:02:40

Android開發(fā)學習Android UIRadio、Check

2020-09-04 09:58:58

Redis數(shù)據(jù)集群

2011-03-28 09:49:44

nagioscheck_http

2023-03-01 22:28:15

Redis高可用

2018-08-20 10:40:09

Redis位圖操作
點贊
收藏

51CTO技術棧公眾號