Redis迁移至Redis指导
- 目标服务器安装Redis。
- 方案一:源码编译安装,可参考Redis官方安装部署教程。
- 下载目标版本源码包并解压。version请根据实际版本进行替换。
tar -zxvf redis-{version}.tar.gz - 进入Redis解压目录。
cd redis-{version} - 执行编译make操作。
1make
Redis5.0之后版本编译支持systemd,6.0版本之后编译支持TLS,编译时选择需要的编译选项。
1make USE_SYSTEMD=yes BUILD_TLS=yes
- 若执行TLS显示缺少OpenSSL,则需要安装OpenSSL开发库:
1sudo yum install openssl openssl-devel
- 若执行systemd显示缺少开发库,则需要安装systemd开发库:
1sudo yum install systemd-devel
- 若执行TLS显示缺少OpenSSL,则需要安装OpenSSL开发库:
- 执行make install安装操作,可选择默认安装地址,也可使用PREFIX来指定安装地址。
1 2
make install make PREFIX={install_path} install
- 下载目标版本源码包并解压。version请根据实际版本进行替换。
- 方案二:软件包管理工具安装
1sudo yum install redis
- 方案一:源码编译安装,可参考Redis官方安装部署教程。
- (可选)安装完成之后,可配置systemd。
- 将Redis默认service拷贝至“/usr/lib/systemd/system”路径。可通过如下命令查找redis.service所在路径。
1find / -name redis.service
- 修改redis.service文件。
- 打开redis.service文件。
1vi redis.service - 按“i”进入编辑模式,修改"ExecStart="的内容。
1ExecStart={install_path}/bin/redis-server {conf_path}
- 按“Esc”,输入:wq!,按“Enter”保存并退出。
- 打开redis.service文件。
- 修改完成后加载redis.service。
1systemctl daemon-reload - 启动Redis服务。
1systemctl start redis.service
- 检查服务是否启动。
1systemctl status redis.service
当“Active”字段显示包含“active(running)”表示成功。
- 停止Redis服务。
1systemctl stop redis.service
- 将Redis默认service拷贝至“/usr/lib/systemd/system”路径。可通过如下命令查找redis.service所在路径。
- 迁移配置、数据等文件。
在原服务器上执行指令以定位数据和配置文件,然后在目标服务器挂载目录中找到相应的文件并进行迁移。如果一台服务器上运行多个Redis实例,需要对每个实例单独执行迁移配置文件、数据文件等的操作。
- 配置文件迁移
进入Redis的src目录下,启动redis-server,再启动redis-cli服务,在redis-cli内输入:
1INFO
找到“config_file:”字样记录下配置文件地址,将配置文件替换掉安装目录下的redis.conf文件,注如果“config_file:”中为空,说明启动时未指定配置文件,可跳过该步骤。
- 数据文件迁移
- 进入Redis的src目录下,启动redis-server,再启动redis-cli服务,在redis-cli内输入:
1save
- 在redis-cli服务中执行如下指令判断是否开启appendonly持久化。
1CONFIG GET appendonly
- 如果appendonly参数为no,则表示AOF功能未启用,则无需迁移AOF文件。
- 如果appendonly参数为yes,继续执行下一步。
- 获取Redis数据存储目录。
1CONFIG GET dir
- 迁移AOF文件(AOF记录服务器收到的每个写入操作)。
- 迁移RDB文件(RDB会持久化对数据集执行时间点快照)。
1CONFIG GET dbfilename
请进入查询到的dir目录,根据输出的文件名查找.rdb文件,将.rdb文件迁移到目标服务器上Redis配置文件中指定的dir目录下,且RDB文件名与配置文件中参数dbfilename一致。若dir设置为./,则应将.rdb文件迁移到目标服务器上安装Redis的相对路径中的相应位置。
- 进入Redis的src目录下,启动redis-server,再启动redis-cli服务,在redis-cli内输入:
- 集群迁移
- 如果原有Redis是集群模式,需要将集群配置文件迁移到新的Redis服务器上,再次执行:
1CONFIG GET dir
- 进入刚刚查询到的dir目录,集群的配置文件通常命名为nodes.conf(如果文件名已被修改,请将所有.conf文件一并迁移)。将这些文件迁移到目标服务器的dir目录下,以确保集群配置保持一致。
- 如果原有Redis是集群模式,需要将集群配置文件迁移到新的Redis服务器上,再次执行:
- 配置文件迁移
- (可选)若Redis为主从模式,请修改相关配置。
- 如果当前节点为主节点,请修改配置文件(默认为redis.conf):
- bind:修改为当前主节点的IP地址。
- logfile和dir:请确保配置为正确的日志和数据地址,建议使用绝对路径。
- masterauth:确保填写正确的主节点认证密码。
- requirepass:确保填写正确的主节点CLI认证密码。
- 如果当前节点为从节点,请修改配置文件(默认为redis.conf):
- bind:修改为当前从节点的IP地址。
- logfile和dir:请确保配置为正确的日志和数据地址,建议使用绝对路径。
- masterauth:确保填写正确的从节点认证密码。
- requirepass:确保填写正确的从节点CLI认证密码。
- replicaof(对于5.0.0之前版本使用slaveof):替换为正确的主节点IP和端口信息。
- 如果当前节点还部署了哨兵节点,请迁移哨兵配置文件到正确的路径,并修改以下配置(默认为sentinel.conf):
- sentinel monitor mymaster:修改为主节点的IP和端口号。
- sentinel auth-pass mymaster:修改为正确的主节点认证密码。
部署在其他机器上的主从、哨兵节点也可以按照相似的方式修改。
- 如果当前节点为主节点,请修改配置文件(默认为redis.conf):
- 启动Redis服务。
- 方式一:使用Redis自带脚本启动(如果原业务使用指定配置文件,需指定对应原路径配置文件进行重启)
1/usr/local/bin/redis-server
- 方式二:使用systemd启动
- 启动Redis服务。
1systemctl start redis.service
- 检查服务是否启动。
1systemctl status redis.service
当“Active”字段显示包含“active(running)”表示成功。
- 启动Redis服务。
- 方式一:使用Redis自带脚本启动(如果原业务使用指定配置文件,需指定对应原路径配置文件进行重启)
- (可选)若Redis为主从模式,请根据实际业务需求,启动Redis哨兵节点。
父主题: 中间件迁移相关指导