为了实现 redis 的数据迁移而写的一个小工具,将一个实例中的 redis 数据同步到另一个实例中。(本来打算找一个已有的工具去作,找了一个 nodejs 的小工具,结果折腾了很久都没装上。。。因而就本身写了这个小工具)html
之因此本身写一个工具而不是利用 redis 备份机制来实现,主要是由于咱们用的是 redis 云服务,不能像本身的服务器同样 SSH 上去一顿操做,要把云服务的 redis 数据同步到本身服务器上的 redis 实例。node
{ "AppSettings": { "SyncDatabases": "0,1", "BatchSize": 50 }, "ConnectionStrings": { "Source": "redis1:6379,asyncTimeout=30000,syncTimeout=30000", "Dest": "redis2:6379,password=123433,asyncTimeout=30000,syncTimeout=30000" } }
AppSettings:SyncDatabases
是要同步的 redis 数据库,多个数据库用英文的逗号分隔AppSettings:BatchSize
是每次从源 redis 服务器读取 N 个 key(分页读取,每页 N 个)ConnectionStrings:Source
表明了源 redis 服务器链接字符串ConnectionStrings:Dest
表明了目标 redis 服务器链接字符串redis 链接字符串详细参数能够参考文档:https://weihanli.github.io/StackExchange.Redis-docs-zh-cn/Configuration.htmlgit
修改 redis 配置以后(根据本身要同步数据量的大小设置超时时间),在项目根目录下运行 dotnet run
便可,github
支持同步/迁移的数据类型:redis
实现源码:https://github.com/WeihanLi/SamplesInPractice/tree/master/RedisCopy数据库