简单说明:
生产Redis集群是使用虚拟机搭建,三主三从,每个实例8G内存,现在需要将其迁移至单节点物理机之上
操作步骤简录:
1° 停业务,使用Redis的相关tomcat停机
2° 定位Redis集群的三个主实例:
redis-trib.rb check 10.75.21.101:7000
3° 定位三个主实例的aof文件目录
4° 数据迁移:
# redis1:
cd /usr/local/redis/run/data/7000/
cat appendonly.aof|redis-cli -h 10.75.50.170 -p 7000 --pipe
# redis2:
cd /usr/local/redis/run/data/7002/
cat appendonly.aof|redis-cli -h 10.75.50.170 -p 7000 --pipe
# redis3:
cd /usr/local/redis/run/data/7005/
cat appendonly.aof|redis-cli -h 10.75.50.170 -p 7000 --pipe
5° 迁移验证:
对比原集群环境的所有key和单机环境的所有key,看是否是一致的即可完成验证
cd /tmp
echo 'keys *'|redis-cli -h 10.75.21.101 -p 7000 > 101_7000_keys.txt
echo 'keys *'|redis-cli -h 10.75.21.102 -p 7002 > 102_7002_keys.txt
echo 'keys *'|redis-cli -h 10.75.21.103 -p 7005 > 103_7005_keys.txt
cat 101_7000_keys.txt 102_7002_keys.txt 103_7005_keys.txt > source.txt
cat source.txt|sort|uniq>fin_source.txt
echo 'keys *'|redis-cli -h 10.75.50.170 -p 7000 > 170_7000_keys.txt
cat 170_7000_keys.txt|sort|uniq>fin_target.txt
comm -3 fin_source.txt fin_target.txt
# 剔除掉公共的key,如果没有信息输出,则表示验证通过
[TOC]