美文网首页
阿里云redis服务迁移记录

阿里云redis服务迁移记录

作者: 追风骚年 | 来源:发表于2019-12-18 11:59 被阅读0次

总有那么一段废话

因为某个项目前期数据量比较小,所以就直接使用 docker 起的 redis 服务,由于现在的业务规模上升,原有的 reids 服务不能进行数据监控以及不方便数据管理和维护,所以在阿里云单独买了一个云 redis 服务,我前期为了安全,也没有将 redis 服务的端口映射到宿主机,所以给我的迁移也带来了挑战。

正式步骤

开启宿主机端口映射

docker-compose.yml 文件下修改 redis service,增加 ports 字段。

  redis:
    container_name: redis-pro
    image: redis:4.0.10
    sysctls:
      net.core.somaxconn: 65535
    ports:
      - "6380:6379"
    networks:
      - backend
    restart: always

更新 redis 服务

$ docker-compose up -d redis

查看端口映射状态

$ docker-compose ps

redis   docker-entrypoint.sh redis ...   Up      0.0.0.0:6380->6379/tcp

开启阿里云 DTS 服务

选择和宿主机以及 redis 在同一个地域的数据传输服务,理论上这样的服务会延迟更低,稳定性更好。

pasted-8.png

分别配置好源库信息和目标库信息,阿里云还是很贴心,测试连接如果都是通过就可以下一步下一步了。

等待到全量更新为 「100%」就说明本次迁移已完成很大一部分了。

为什么要使用 DTS 服务,而不是自己将 redis 保存成文件,导入到新的 redis 服务呢?主要是 DTS 服务支持增量更新,后面可能会持续有数据的读写覆盖等,这些 DTS 服务会一条龙服务解决掉。

配置 redis 地址

开启云 reids 外网地址

实际过程中我是直接用的内网地址,发现内网根本连不上。

这里直接说外网地址,保证系统先调通,这里注意两点。

  • 购买的 reids 版本,阿里云 Redis4.0 及以上版本密码格式为“账号:密码”,其他版本就只有密码,没有账户概念,当然我是追求极致体验全部选最新。
  • 点击申请外网链接,是需要等待 20 秒左右才能使用的,不是立即生效。
pasted-9.png

修改 web 服务中的 redis 地址

因为我在使用 swoft,直接修改 redis 的配置文件 config/pro/redis.php

pasted-10.png

将代码部署到线上,发现服务正常运行。如果你能接受外网访问,那么到这里就可以结束了,我一个追求极致的人,当然是不能容忍线上服务就这么暴露在外网中,即使有白名单机制。

出现的问题

主要是 redis 配置这块碰到了一个大坑,和阿里云的技术客服来来去去聊了一天,他们每半小时或者一个小时才给我回复一条消息,到晚上才给我解决,感觉白天的阿里云客服技术水平完全是值班的,一些很简单的问题和我绕了半天,结果道歉说他弄错了,是在怀疑我不专业吗?不过最后那个技术客服一下就能抓住重点,问题一下就解决了。给了我一个文档也不知道是哪位大佬的博客,是这位客服自己的么?🙃🙃

我在使用内网地址的时候一直会反馈一个错误。发现 redis 连接一直超时。
然后我去 ping 了一下他的地址

$ ping r-xxxxxxxxxx.redis.rds.aliyuncs.com

Destination Host Unreachable

给我反馈的 Destination Host Unreachable 就是这个错误,简单的说就是 dns 解析不到,网络无法连通。我开始以为这个可能是阿里云故意关闭了 ping 所需要的 icmp 包。

我就使用 reids 客户端去实验,参数 h 是地址,参数 a 是密码。

$ redis-cli -h r-xxxxxxxxxx.redis.rds.aliyuncs.com -a xxxxx

Name or service not known

发现这个内网真的访问不上,和阿里云客服百般沟通之后,提供的解决方案来看,是通信的网卡走错了。

配置 docker

$ vi  /etc/docker/daemon.json 

daemon.json 文件里面增加一个网段信息

{
    "bip": "192.168.200.1/24"
}

重启 docker 服务

$ systemctl restart docker

但是我这里重启 docker 服务还是报错了,最后不得已重启了机器。

ping 了一下地址确实是能 ping 到,重新配置了 reids 的内网地址,一切都恢复正常了。

关闭阿里云 DTS 服务

因为 DTS 服务是收费服务,线上既然可以正常运行,就可以先暂停服务,然后释放掉就可以了。

总结

这个总结我研究了好几天,感觉还是不要总结了,因为有些知识还是需要我去发掘,因为对于这个内网地址我实在有点不太明白,它的原理是什么,为什么我在使用 dns 8.8.8.8 的时候,还是可以解析到内网地址?

后面我会补充一篇内容专门讨论阿里云的内网技术。

参考文档

相关文章

  • 阿里云redis服务迁移记录

    总有那么一段废话 因为某个项目前期数据量比较小,所以就直接使用 docker 起的 redis 服务,由于现在的业...

  • ubuntu 14.04安装redis

    最近公司从阿里云准备迁移到亚马逊云,为此需要在亚马逊上搭建一些基础设施.这篇文档仅是搭建redis服务器的步骤记录...

  • Oracle迁移记录

    Oracle迁移记录 背景说明 自建机房中的所有服务全部迁移至阿里云服务器,重中之重-Oracle数据库迁移,包括...

  • 云迁移的各种场景

    一、物理服务器/其他云服务迁移至阿里云 1.1 IDC的物理服务器、虚拟机,其他云平台的服务器迁移到阿里云 阿里云...

  • 阿里云上迁移Mongo副本集数据库到ECS自建服务器的记录

    从 阿里云上 迁移 Mongo 副本集 数据库 到 ECS 自建服务器的记录 环境: 阿里云 —— Mon...

  • Centos7系统下KVM虚拟化Migration(10)--阿

    1、使用迁云工具迁移服务器至阿里云 本文介绍如何使用迁云工具将源服务器迁移至阿里云。源服务器概指您的IDC服务器、...

  • 阿里云ECS使用465端口发送邮件

    企业 zabbix server迁移到阿里云服务器,迁移过程中发现邮件告警功能无法使用。特记录下解决过程, 备注:...

  • 八、redis的安装-windos

    一、windos服务器安装redis 阿里云的centos换成windos了,先记录下windos服务器安装 二、...

  • Redis 异构集群数据迁移

    场景:自建Redis集群线上的数据和服务迁移到腾讯云Redis 因为云redis不是单独的机器,没有入口把数据直接...

  • 阿里云服务器迁移记录

    偶的网站诸葛兔影视网,在国外空间运行了8个月后,还是决定迁移到国内空间上来。首选的就是阿里云服务器,先是挑选配置,...

网友评论

      本文标题:阿里云redis服务迁移记录

      本文链接:https://www.haomeiwen.com/subject/igaynctx.html