下载并添加到环境变量
首先注意 usr
指 Unix System Resource
,而不是 User
/usr/bin
下面的都是系统预装的可执行程序,会随着系统升级而改变。
/usr/local/bin
目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。
[root@master ~]# wget http://qiniu.dev-share.top/redis-cli -P /usr/local/bin/ && chmod -R 755 /usr/local/bin/redis-cli
用法
redis-cli -h host -p port -a password
[root@master ~]# redis-cli -h 192.168.2.10 -p 6379 -a 123456
192.168.2.10:6379> PING
PONG
192.168.2.10:6379>
常用命令
只安装客户端
Redis 图形化客户端
redis-full-check
校验两个Redis中的数据是否一致
## 下载安装
wget https://github.com/alibaba/RedisFullCheck/releases/download/release-v1.4.8-20200212/redis-full-check-1.4.8.tar.gz
## 或 从七牛云下载
wget http://qiniu.dev-share.top/file/redis-full-check-1.4.8.tar.gz && \
tar -zxvf redis-full-check-1.4.8.tar.gz && \
mv redis-full-check-1.4.8/redis-full-check /usr/local/bin/
[root@centos01 ~]# redis-full-check -v
improve-1.4.8,8eb8326054a83dd91d1bbf55b455b4e730b612bf,go1.10.1,2020-02-12_18:32:51
工具使用
redis-full-check -s 192.168.101.21:6379 -p ****** \
-t 192.168.101.22:6379 -a ****** \
--log log \
--comparetimes=1 \
--interval=3 \
--comparemode=1 \
--result result
输出结果如下
[INFO 2022-10-10-10:41:56 main.go:65]: init log success
## 数据库信息
[INFO 2022-10-10-10:41:56 main.go:168]: configuration: {192.168.101.21:6379 ****** auth 0 -1 192.168.101.22:6379 ****** auth 0 -1 result.db result 1 1 unknown unknown unknown 15000 3 256 5 log false 16384 20445 false}
[INFO 2022-10-10-10:41:56 main.go:170]: ---------
[INFO 2022-10-10-10:41:56 full_check.go:238]: sourceDbType=0, p.sourcePhysicalDBList=[meaningless]
## 将比较哪些 db
[INFO 2022-10-10-10:41:56 full_check.go:243]: db=1:keys=5
[INFO 2022-10-10-10:41:56 full_check.go:243]: db=0:keys=100
[INFO 2022-10-10-10:41:56 full_check.go:253]: ---------------- start 1th time compare
## 开始比较 db1
[INFO 2022-10-10-10:41:56 full_check.go:278]: start compare db 1
[INFO 2022-10-10-10:41:56 scan.go:20]: build connection[source redis addr: [192.168.101.21:6379]]
[INFO 2022-10-10-10:41:57 full_check.go:203]: stat:
times:1, db:1, dbkeys:5, finish:100%, finished:true
## 扫描到 5个key
KeyScan:{5 5 0}
## 源库与目的库的 key、value 完全相同的有2个
KeyEqualAtLast|string|equal|{2 2 0}
## 源库与目的库的 key相同,value不同的有1个
KeyConflictAtLast|string|value|{1 1 0}
## 目的库 缺少的key有2个
KeyConflictAtLast|string|lack_target|{2 2 0}
## 开始比较 db0
[INFO 2022-10-10-10:41:57 full_check.go:278]: start compare db 0
[INFO 2022-10-10-10:41:57 scan.go:20]: build connection[source redis addr: [192.168.101.21:6379]]
[INFO 2022-10-10-10:41:58 full_check.go:203]: stat:
times:1, db:0, dbkeys:100, finish:100%, finished:true
KeyScan:{100 100 0}
KeyEqualAtLast|string|equal|{18 18 0}
KeyConflictAtLast|string|value|{81 81 0}
KeyConflictAtLast|string|lack_target|{1 1 0}
## 比较完成
[INFO 2022-10-10-10:41:58 full_check.go:328]: --------------- finished! ----------------
all finish successfully, totally 85 key(s) and 0 field(s) conflict
使用说明
redis-full-check -s 源redis库:端口 -p 源redis库密码 \
-t 目的redis库:端口 -a 目的redis库密码 \
--log log \ 将控制台日志,写入到本地
--comparetimes=3 \ 比较轮数。 (默认值:3)
--interval=5 \ 每轮之间的时间间隔。 (默认值:5秒)
--comparemode=2 \ 比较模式: (默认值:2)
1 表示全量比较
2 表示只对比value的长度
3 只对比key是否存在
4 全量比较的情况下,忽略大key的比较
--result result \ 不一致结果记录到result文件中