Coder Social home page Coder Social logo

Comments (20)

vinllen avatar vinllen commented on May 5, 2024

抱歉,这几天有点忙,这个今天我晚点看下

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

image
把这个地方改成string(ret.(string))就可以了
另外又出现一个问题,我们现在两个机房做redis集群数据同步,两个机房之间通过ip承载网互相访问,redis数据检查时,我源redis集群参数配置的是承载网ip,但报ECONNTIMEOUT超时,如下:
image
报连接超时的却是集群内部真实的cluster node的ip地址,
我想请问下,数据检查连接到源redis集群后,是拿的集群内部的ip地址去获取数据的吗?
如果是这样,能够修改为,使用检查参数中源redis集群的地址去获取数据吗?
感谢!

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

我不是搞go的,这个东西搞起来有点费劲儿。。。

from redisfullcheck.

vinllen avatar vinllen commented on May 5, 2024

改完报这个错那是连接问题了,你手动能连上吗?对于集群cluster是要每个db ip都能连接通才行的。这个报错捕获是不太合理,我后续会更新一下

from redisfullcheck.

vinllen avatar vinllen commented on May 5, 2024

报错的这台是10网段的,连不上吧?

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

./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.

vinllen avatar vinllen commented on May 5, 2024

报错的这台:10.14.16.122:10476呢。这个应该是某个db的地址,配的是172的网段,看这个应该走的10网段,看看机器ip是不是有啥特殊配置

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

报错的是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.

vinllen avatar vinllen commented on May 5, 2024

你这个说的"承载网"是做的NAT转发?你看看集群cluster nodes显示本身应该也都是10网段的吧?这个驱动层面应该是有获取状态信息的,所以要改的话可能还得看下驱动层面的代码再修改,这个代价比较高了。
我建议,你可以把你A集群数据同步(可以用redis-shake)到A机房所在的1个standalone节点(假设为C),然后对外暴露172的网段,再对比B和C,相当于变相对于A和B了,这样可以绕开集群的driver。

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

对,就是转发,集群本身的cluster nodes确实是10网段的,我也看了redis的代码,还没找到在哪里改,go我也不熟悉。。。
我们目前同步用的就是redis-shake,直接是集群对集群,但同步完发现两边的数据量不一致,相差一百多万的key,所以就想用这个工具检查下,才发现有这么个问题。
行,我按照你的建议搞一发,搞完我在来反馈结果。
十分感谢!!

from redisfullcheck.

vinllen avatar vinllen commented on May 5, 2024

嗯,你先对比看下,有问题再反馈。差异你是用info keyspace看出来的吧,正常应该是数据过期了但没被删除导致的。

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

对,keyspace看的,用redis-shake同步,源集群中过期的key会同步到新集群吗

from redisfullcheck.

vinllen avatar vinllen commented on May 5, 2024

不会同步,keyspace看到不一致是正常的,你用full-check校验一下好了

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

image
我昨天检查了一遍,有三百多个key不一致,今天想再跑一次,但一直卡在21%不动,好几个小时了,该怎么解决,命令如下:
image

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

大概有15302148的数据

from redisfullcheck.

vinllen avatar vinllen commented on May 5, 2024

这个还是第一次见,应该哪里卡了,你要不重启一下吧,下个版本我加些堆栈信息。

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

image
我重启了还是一直卡在21%不动,我圈起来的后面两个变成两个0是什么意思

from redisfullcheck.

vinllen avatar vinllen commented on May 5, 2024

你加下我微信吧,redis-shake的底部能找到我的微信方式,我发你个二进制打下堆栈信息再试一下,再有问题把堆栈信息打给我。

from redisfullcheck.

lijun535535 avatar lijun535535 commented on May 5, 2024

我加你了

from redisfullcheck.

vinllen avatar vinllen commented on May 5, 2024

用户反馈:比较的线程数调到默认的5,就不会卡住,之前配置的32个线程。另外,还有qps、batchcount调到了1000,之前是5000。

from redisfullcheck.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.