情景分析
某大佬说,我们要把一部机器的
redis
迁移到另外一部机器上面。现已存在两部机器的
redis
环境及状态是启动,还有本地用
rdm
连接着两部机器的connection。
开始
第一步:查找redis
存储文件存放在机器的位置
打开rdm
,右击redis
数据库,选择Console
打开redis
命令控制台,输入命令:
CONFIG GET dir
输出:
1) "dir"
2) "/"
说明redis
存储文件dump.rdb
(文件名是redis.conf
文件默认配置的)在服务器的根目录/
下。
重复第一步的上述步骤分别找出两部机器redis
的dump.rdb
位置;
第二步:关闭目标服务器redis
具体怎么关闭这里不阐述,但可以通过第三方工具关闭和通过命令关闭,具体可以根据喜好选择;但一定要先关闭redis
服务器才进行下一步,否则迁移无效(不知道为何);
第三步:复制源服务器dump.rdb
文件到目标服务器指定位置
这一步可以通过ftp等工具实现,也可以通过命令行实现。当时笔者用的是命令行,直接在源服务器上敲打命令(此命令会覆盖目标服务器上指定路径的文件):
scp path/to/dump.rdb serverUserName@serverIp:path/to/dump.rdb
回车,需要输入密码,输入的时候不可见输入的密码,自己在大脑中臆想已输入的字符,确保没问题,直接回车。如果没问题的话,表示已经将源服务器的dump.rdb
文件传输过去了。
第四步:启动目标服务器的redis
服务
具体怎么启动这里不阐述,但可以通过第三方工具启动和通过命令启动,具体可以根据喜好选择;
第五步:验证目标服务器的redis
数据是否已经迁移完毕
这个时候,打开rdm
,右击目标服务器的redis
数据库,选择Reload
;这个时候就可以看到redis
数据库已经迁移完成了。
总结
原来才知道迁移
redis
数据库没想象中那么难,关键是在实际操作过程中会踩到一些坑,其中也不明白为何要先关闭目标服务器的
redis
服务才可以进行替换和迁移,或许跟redis是
存储在内存和数据持久化有关系吧。