Comments (20)
抱歉,这几天有点忙,这个今天我晚点看下
from redisfullcheck.
把这个地方改成string(ret.(string))就可以了
另外又出现一个问题,我们现在两个机房做redis集群数据同步,两个机房之间通过ip承载网互相访问,redis数据检查时,我源redis集群参数配置的是承载网ip,但报ECONNTIMEOUT超时,如下:
报连接超时的却是集群内部真实的cluster node的ip地址,
我想请问下,数据检查连接到源redis集群后,是拿的集群内部的ip地址去获取数据的吗?
如果是这样,能够修改为,使用检查参数中源redis集群的地址去获取数据吗?
感谢!
from redisfullcheck.
我不是搞go的,这个东西搞起来有点费劲儿。。。
from redisfullcheck.
改完报这个错那是连接问题了,你手动能连上吗?对于集群cluster是要每个db ip都能连接通才行的。这个报错捕获是不太合理,我后续会更新一下
from redisfullcheck.
报错的这台是10网段的,连不上吧?
from redisfullcheck.
./redis-full-check -s "172.17.70.150:10476;172.17.70.151:10476;172.17.70.152:10476;172.17.70.153:10476;172.17.70.154:10476" -p aaaaa -t "10.252.229.90:10476;10.252.229.90:10477;10.252.229.91:10476" -a aaaaa -m 1 --targetdbtype=1 --comparemode=1 --comparetimes=3 --qps=100 --batchcount=100 --sourcedbtype=1
这几台机器都能手动连上
from redisfullcheck.
报错的这台:10.14.16.122:10476呢。这个应该是某个db的地址,配的是172的网段,看这个应该走的10网段,看看机器ip是不是有啥特殊配置
from redisfullcheck.
报错的是10.14.16.122连不上,这个ip并不是我在命令中配置的ip
我们现在又A、B两个机房
A机房中集群作为源,A中集群ip为10.14.16.118-122,端口为10476
现在需要往B机房同步数据,但B机房中直接连10.14.16.118-122是连不上的,需要使用承载网ip
10.14.16.118--122分别对应的承载网ip为172.17.70.150--154
也就是说,从B机房连A机房的10.14.16.118机器上的redis,就要通过172.17.70.150去连接,也即
./redis-cli -h 172.17.70.150 -p 10476 -a
现在的情况是,我的检查命令用的全都是承载网ip,但报连不上的是A机房实际的redis ip
from redisfullcheck.
你这个说的"承载网"是做的NAT转发?你看看集群cluster nodes显示本身应该也都是10网段的吧?这个驱动层面应该是有获取状态信息的,所以要改的话可能还得看下驱动层面的代码再修改,这个代价比较高了。
我建议,你可以把你A集群数据同步(可以用redis-shake)到A机房所在的1个standalone节点(假设为C),然后对外暴露172的网段,再对比B和C,相当于变相对于A和B了,这样可以绕开集群的driver。
from redisfullcheck.
对,就是转发,集群本身的cluster nodes确实是10网段的,我也看了redis的代码,还没找到在哪里改,go我也不熟悉。。。
我们目前同步用的就是redis-shake,直接是集群对集群,但同步完发现两边的数据量不一致,相差一百多万的key,所以就想用这个工具检查下,才发现有这么个问题。
行,我按照你的建议搞一发,搞完我在来反馈结果。
十分感谢!!
from redisfullcheck.
嗯,你先对比看下,有问题再反馈。差异你是用info keyspace看出来的吧,正常应该是数据过期了但没被删除导致的。
from redisfullcheck.
对,keyspace看的,用redis-shake同步,源集群中过期的key会同步到新集群吗
from redisfullcheck.
不会同步,keyspace看到不一致是正常的,你用full-check校验一下好了
from redisfullcheck.
我昨天检查了一遍,有三百多个key不一致,今天想再跑一次,但一直卡在21%不动,好几个小时了,该怎么解决,命令如下:
from redisfullcheck.
大概有15302148的数据
from redisfullcheck.
这个还是第一次见,应该哪里卡了,你要不重启一下吧,下个版本我加些堆栈信息。
from redisfullcheck.
我重启了还是一直卡在21%不动,我圈起来的后面两个变成两个0是什么意思
from redisfullcheck.
你加下我微信吧,redis-shake的底部能找到我的微信方式,我发你个二进制打下堆栈信息再试一下,再有问题把堆栈信息打给我。
from redisfullcheck.
我加你了
from redisfullcheck.
用户反馈:比较的线程数调到默认的5,就不会卡住,之前配置的32个线程。另外,还有qps、batchcount调到了1000,之前是5000。
from redisfullcheck.
Related Issues (20)
- panic: runtime error: invalid memory address or nil pointer dereference
- 执行redis-full-check.linux会报go-sqlite3 cgo的错,也没说依赖什么,查不到解决方法,用了1.4.9 HOT 4
- redisFullCheck 1.4.9 执行redis-full-check.linux 报Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work HOT 10
- [BUG]1.4.8版本mode=1时 panic:interface conversion HOT 1
- [bug] 执行退出 报错:panic: interface conversion: interface {} is int64, not []uint8
- 大key拆分阈值bigkeythreshold单位是bit还是byte? HOT 4
- 提几个小问题 HOT 1
- mac上使用最新的二进制报错 HOT 1
- Redis-Cluster 集群(源) 和 Redis 单机(目标)数据比对,比对结果完全不对 HOT 4
- 下载tar包解压后,运行报错 HOT 1
- 使用redis-full-check-1.4.8版本比较两个华为云的redis集群数据,如何查看比对结果。有没有结果说明文档
- 为什么没有类似redis-shake的暴露一个接口查看当前check的进度 HOT 1
- connection not working if password contains colon ":"
- return element[-1] isn't type string[int64] HOT 1
- release artifact 支持多架构 HOT 1
- 支持glibc2.26 HOT 1
- 是否支持redis6+ 有acl认证,没看到有输入 源和目标用户名的参数 HOT 1
- 是否能指定database对比数据 HOT 1
- 现在是否支持codis集群的验证?
- scan中cursor应该定义为uint64
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from redisfullcheck.