1,背景
Redis的持久化只是用于备份数据,而如果作为持久化存储会有一些问题(具体?),因此将Redis数据迁移至SSDB,命令列表见http://ssdb.io/docs/zh_cn/redis-to-ssdb.html
2,策略
由于Redis存储的数据很重要,因此为了保证数据迁移的可靠性同时不对线上业务造成影响,采取分步过渡并验证的方式:
3,关键点
a,修改代码,加入开关切换redis和ssdb的读写使上述几种情况都可以通过配置开关来控制。
b,加入读取SSDB数据的lua接口,并发访问量很大,采取nginx+lua解决。
c,测试并验证。写测试脚本对所有对外接口进行测试,查看数据的返回值并校验数据是否一致。
d,数据同步
4,问题
a) 当redis和ssdb数据同步时,执行测试脚本显示错误:errno=2001 errmsg=server error: closed。经查是Redis主从同步断开,进而导致从从同步也断开。