如何让redis 迁移大key的restore性能提升6倍

羽洵 2016-11-24

数据存储与数据库 redis 性能优化 NOSQL 性能 阿里技术协会 http 高可用 弹性伸缩 数据结构 restore key ApsaraDB ATA

redis支持migrate key的命令,支持从源redis节点迁移key到目标节点上,目标节点再执行restore命令,将数据加载进内存中。以800MB,数据类型为zset(skiplist) 的 key为例,测试环境为本地开发机上两台redis,忽略网络的影响。原生的redis 在restore时执行需要163s,优化后的redis执行需要27s。

1. 原生redis restore的性能瓶颈

通过扁鹊工具分析,可以看到cpu的运行情况如下:
before.jpg
查看源码可知,migrate 遍历出来的zset 中的hashtable值和score,序列化之后打包给目标节点。
目标节点在反序列后重新构造了zset的结构,包括zslinsert, dictadd 等操作。当数据量越大时,重构的代价也就越大。

2. 优化方法

已知瓶颈在重构数据模型,所以优化

登录 后评论
下一篇
corcosa
10433人浏览
2019-10-08
相关推荐
数据和云
981人浏览
2018-10-11 15:20:26
2016全球最强数据库大盘点
7500人浏览
2017-01-10 14:55:52
redis-shake数据同步&迁移工具
8956人浏览
2019-02-28 17:55:50
1
4
1
9034