用 C# 寫一個 Redis 資料同步小工具
Intro
為了實作 redis 的資料遷移而寫的一個小工具,將一個實體中的 redis 資料同步到另外一個實體中,(原本打算找一個已有的工具去做,找了一個 nodejs 的小工具,結果折騰了好久都沒裝上,,,于是就自己寫了這個小工具)
之所以自己寫一個工具而不是利用 redis 備份機制來實作,主要是因為我們用的是 redis 云服務,不能像自己的服務器一樣 SSH 上去一頓操作,要把云服務的 redis 資料同步到自己服務器上的 redis 實體,
基本使用
配置解讀
{
"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.html
執行遷移
修改 redis 配置之后(根據自己要同步資料量的大小設定超時時間),在專案根目錄下運行 dotnet run 即可,
Sample Run

More
支持同步/遷移的資料型別:
- String
- Hash
- List
- Set
- ZSet(SortedSet)
實作原始碼:https://github.com/WeihanLi/SamplesInPractice/tree/master/RedisCopy
Reference
- https://github.com/WeihanLi/SamplesInPractice/tree/master/RedisCopy
- https://weihanli.github.io/StackExchange.Redis-docs-zh-cn/Configuration.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/75347.html
標籤:C#
