【Azure Redis 缓存】使用开源工具redis-copy时遇见6379端口无法连接到Redis服务器的问题

问题描述

当使用Azure Redis服务时,需要把一个Redis服务的数据导入到另一个Redis上,因为Redis服务没有使用高级版,所以不支持直接导入/导出RDB文件。

以编程方式来读取数据并写入到新的Redis服务端,使用开源工具 Redis-Copy 却遇见了 6379 端口无法连接的问题。而用 redis-cli.exe 却正常连接。

redis-copy 工具使用 6379 端口
redis-copy.exe --se xxxxx.redis.cache.chinacloudapi.cn --sa  --sp 6379  --sssl false --de xxxxx.redis.cache.chinacloudapi.cn --da   --dp 6379 --dssl false

报错:


(资料图片仅供参考)

UnableToConnect on xxxxxxxx.redis.cache.chinacloudapi.cn:6379/InteractiveNo connection is available to service this operationIt was not possible to connect to the redis server.Redis-cli.exe 工具使用 6379 端口,正常连接
redis-cli.exe -h yourcachename.redis.cache.chinacloudapi.cn -p 6379 -a YourAccessKey

那么,这是什么情况呢?如何才能正确使用 redis-copy.exe 工具呢?

问题解答

根据 redis-cli.exe 工具的验证,Redis服务器的 6379端口在同一个客户端机器上,是可以正常连接的。那么问题就需要转移到 redis-copy.exe 的这个开源工具上来研究了。

第一步:去 github 上下载 redis-copy的源码:https://github.com/deepakverma/redis-copy

第二步:本地Visual Studio 工具打开后,把启动指令后面携带的参数填入Debug Start options中

第三步:调试代码,发现问题根源是SSL的参数值依旧为True,而端口为 6379。 用SSL的方式去链接非SSL端口,这就是问题的根源。

问题出现在CommandLine.Parser.Default.ParseArguments(args) 这句代码上,经过反复实现,发现CommandLine在转换 bool 类型的时候,只要携带了这个参数,不管内容是什么,都会被转换为 true

第四步:解决办法

最快的解决办法 ---- 使用6380端口连接

redis-copy.exe --se xxxxx.redis.cache.chinacloudapi.cn --sa  --sp 6380   --de xxxxx.redis.cache.chinacloudapi.cn --da   --dp 6380 

修改Redis-Copy源码 ---- 解决SSL赋值问题

[主要]方案一:在Options.cs 文件中,修改SourceSSL 和DestinationSSL 的默认值为False。当需要使用6380端口连接时,携带 --sssl , --dssl参数

[Option("sssl", Required = false, Default = false, HelpText = "Connect Source over ssl" )]        public bool SourceSSL { get; set; }... ...       [Option("dssl", Required = false, Default = false, HelpText = "Destination Source over ssl" )]        public bool DestinationSSL { get; set; }

修改代码,重新编译exe文件后。

使用6379端口的命令为:redis-copy.exe --se xxxx --sa **** --sp 6379 --de xxxx --da **** --dp 6379

使用6380端口的命令为:redis-copy.exe --se xxxx --sa **** --sp 6380 --sssl true --de xxxx --da **** --dp 6380 --dssl true

[其他]方案二:在Options.cs 文件中,修改SourceSSL 和DestinationSSL 的类型为String,然后再初始化Redis连接字符串的时候转换为bool类型。

[Option("sssl", Required = false, Default = true, HelpText = "Connect Source over ssl" )]        public string SourceSSL { get; set; }... ...        [Option("dssl", Required = false, Default = true, HelpText = "Destination Source over ssl" )]        public string DestinationSSL { get; set; }.... ....            ConfigurationOptions configsource = new ConfigurationOptions();            configsource.Ssl =Convert.ToBoolean(options.SourceSSL);            configsource.Password = options.SourcePassword;            configsource.AllowAdmin = true;            configsource.SyncTimeout = 60000; // increasing timeout for source for SCAN command            sourcecon = GetConnectionMultiplexer(options.SourceEndpoint, options.SourcePort, configsource);... ...        ConfigurationOptions configdestination = new ConfigurationOptions();            configdestination.Ssl = Convert.ToBoolean(options.DestinationSSL);            configdestination.Password = options.DestinationPassword;            configdestination.AllowAdmin = true;            destcon = GetConnectionMultiplexer(options.DestinationEndpoint, options.DestinationPort, configdestination);
参考资料

以编程方式迁移 :https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-migration-guide#migrate-programmatically

使用 Redis 命令行工具进行连接:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-redis-cli-tool#connect-using-the-redis-command-line-tool

redis-copy :https://github.com/deepakverma/redis-copy

关键词:

蒙牛乳业(2319.HK)现涨6.06%报34.15港元 最新市值1350亿港元

蒙牛乳业(2319 HK)现涨6 06%报34 15港元,暂成交3亿港元,最新市值1350亿港元。蒙牛昨日晚间公布中期业绩称,期内收入为人民币477 223亿元

格隆汇 2022-08-25

碧桂园服务(6098.HK)今年上半年核心利润为27.5亿元人民币 下调碧服股份目标价

美银证券发表报告指,碧桂园服务(6098 HK)今年上半年核心利润为27 5亿元人民币,按年增长30%,符合该行预期。至于收入按年增长74%至200 6亿

格隆汇 2022-08-25

融创服务(1516.HK)跌超8%报2.85港元 总市值87亿港元

融创服务(1516 HK)跌超8%,报2 85港元,总市值87亿港元。该公司昨日盘后公布,预计6月止六个月录得亏损不超过7 6亿人民币。主要受房地产行

格隆汇 2022-08-25

今年夏天四川空调线下零售额增幅为三位数 多个领域迸发新市场活力

经济学中有个术语,称为一度效应,即气温只要有1℃的变化,商品的销量就会随之发生很大改变。德国曾统计,夏季气温每上升一度,就会增加230

四川日报 2022-08-17

各行业工资单出炉!IT类最赚钱,还有这些钱景喜人

  中新经纬11月24日电 (张澍楠)虽说三百六十行,行行出状元,但行业之间的差距,仍然很大。究竟什么行业“最香”?被视为“高富帅”的金

2021-11-24

“狗咬人”事件当事人被撤职 多名干部被问责

  新华社郑州11月23日电(记者冯大鹏)在“狗咬人”舆情发酵后,23日晚,河南安阳通报了对涉“狗咬人”事件责任单位和责任人的处理决定。 

2021-11-24

北京朝阳区来广营华贸城7号院6号楼解除管控

  11月23日晚,朝阳区来广营地区清苑路第五社区华贸城7号院6号楼正式解除管控。  11月23日,华贸城7号院6号楼583户管控居民进行了第四

2021-11-24

蒙牛乳业(2319.HK)现涨6.06%报34.15港元 最新市值1350亿港元

蒙牛乳业(2319 HK)现涨6 06%报34 15港元,暂成交3亿港元,最新市值1350亿港元。蒙牛昨日晚间公布中期业绩称,期内收入为人民币477 223亿元

格隆汇 2022-08-25

碧桂园服务(6098.HK)今年上半年核心利润为27.5亿元人民币 下调碧服股份目标价

美银证券发表报告指,碧桂园服务(6098 HK)今年上半年核心利润为27 5亿元人民币,按年增长30%,符合该行预期。至于收入按年增长74%至200 6亿

格隆汇 2022-08-25

融创服务(1516.HK)跌超8%报2.85港元 总市值87亿港元

融创服务(1516 HK)跌超8%,报2 85港元,总市值87亿港元。该公司昨日盘后公布,预计6月止六个月录得亏损不超过7 6亿人民币。主要受房地产行

格隆汇 2022-08-25

今年夏天四川空调线下零售额增幅为三位数 多个领域迸发新市场活力

经济学中有个术语,称为一度效应,即气温只要有1℃的变化,商品的销量就会随之发生很大改变。德国曾统计,夏季气温每上升一度,就会增加230

四川日报 2022-08-17

各行业工资单出炉!IT类最赚钱,还有这些钱景喜人

  中新经纬11月24日电 (张澍楠)虽说三百六十行,行行出状元,但行业之间的差距,仍然很大。究竟什么行业“最香”?被视为“高富帅”的金

2021-11-24

“狗咬人”事件当事人被撤职 多名干部被问责

  新华社郑州11月23日电(记者冯大鹏)在“狗咬人”舆情发酵后,23日晚,河南安阳通报了对涉“狗咬人”事件责任单位和责任人的处理决定。 

2021-11-24

云南哀牢山4名遇难地质队员遗体已移交其所在单位

  根据云南省普洱市哀牢山 "11·15 "联合指挥部通报,2021年11月23日21时50分,4名遇难人员遗体已移交其所在单位。 【编辑:叶攀】

2021-11-24
x 广告
x 广告
x 广告

Copyright   2015-2022 大众仓储网版权所有  备案号:豫ICP备20014643号-14   联系邮箱: 905 14 41 07@qq.com