【Redis】redis遷移資料到redis-cluster
不管是單節點還是叢集都可以用以下的思路遷移至cluster叢集中去
方案步驟 1)獲取原單例項節點D的持久化AOF(rdb)檔案,如果是叢集就先將所有的solt移動到一臺機器上 2)新準備三個節點A,B,C,建立叢集,目前叢集為空 3)把節點B,C上的slots,全部分配給A,關閉新的叢集(記住:一定要關閉新的叢集) 4)把1)中獲取的rdb檔案SCP到A上 5)重啟A節點,把資料全部載入到記憶體,再啟動BC節點 6)把A節點上的slots再均勻分配給B,C 7)新準備A1,B1,C1,分別作為A,B,C的slave加入到叢集 8)驗證資料的完整性和叢集狀態
步驟中的第6步分配時可能報以下的錯誤
[ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY)
解決辦法:
ruby gem安裝的redis庫,版本不能使用最新的4.0,否則redis-trib.rb reshard 127.0.0.1:7000 重新分片時會報語法錯誤。 1、解除安裝最新redis庫,gem uninstall redis 2、安裝3.x版本,gem install redis -v 3.3.5 測試3.2.1到3.3.5都可以,4.x以上的分片報錯。
reshard失敗之後如果check要是有如下錯誤
[WARNING] Node 192.168.0.11:6380 has slots in migrating state (5461). [WARNING] The following slots are open: 5461 可以使用redis命令取消slots遷移(5461為slot的ID): cluster setslot 5461 stable 需要注意,須登入到192.168.0.11:6380上執行redis的setslot子命令。
遷移方式二:
只有在無密碼的情況下才好用(單節點>>>叢集) /usr/local/src/redis-4.0.8/src/redis-trib.rb.bak import --from 172.31.47.95:6381 --copy 172.31.32.223:6379 檢視 每個節點的size 127.0.0.1:6379> dbsize (integer) 466 127.0.0.1:6379> dbsize (integer) 478 127.0.0.1:6379> dbsize (integer) 441 所有的key已經自動幫忙分到不同的slot去了
參考:
http://blog.51cto.com/13544424/2058280
http://blog.51cto.com/362475097/1890301
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2154987/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Redis】 redis資料遷移Redis
- 【Redis】redis-cluster到redis-cluster的快速複製Redis
- redis資料遷移Redis
- redis資料庫遷移Redis資料庫
- Redis資料遷移同步工具(redis-shake)Redis
- redis-cluster心得Redis
- Redis鍵遷移Redis
- 【PyTHON】redis資料遷移PythonRedis
- 線上redis遷移思路Redis
- redis叢集 資料遷移方案Redis
- 【Redis】 redis-cluster刪除指定的keyRedis
- 遷移sqlserver資料到MongoDbSQLServerMongoDB
- 【Redis】redis-cluster 安裝遇到的問題Redis
- redis-cluster主從搭建Redis
- 優雅搭建redis-clusterRedis
- redis 單機和cluster資料遷移Redis
- 資料到hadoop的遷移Hadoop
- 【Redis】redis-cluster需要注意的幾個地方Redis
- redis-cluster叢集安裝(基於redis-3.2.10)Redis
- 從Sql Server遷移資料到OracleSQLServerOracle
- 遷移資料到Oracle的方法思考Oracle
- 從MySQL到Redis提升資料遷移的效率MySqlRedis
- Redis-cluster叢集搭建部署Redis
- Redis 架構演變與 Redis-cluster 群集讀寫方案Redis架構
- Django資料從sqlite遷移資料到MySQLDjangoSQLiteMySql
- 單機遷移資料到RAC完整案例
- mysqldump從mysql遷移資料到OceanBaseMySql
- 比Redis-cluster還好的redis分散式叢集(twemproxy代理)Redis分散式
- 【Redis 技術探索】「資料遷移實戰」手把手教你如何實現線上 + 離線模式進行遷移 Redis 資料實戰指南(scan模式遷移)Redis模式
- SpringBoot 2.0 如何使用Redis-ClusterSpring BootRedis
- Redis叢集slot遷移改造實踐Redis
- 在滴滴雲上搭建 Redis-Cluster 叢集Redis
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- kubernetes生產實踐之redis-clusterRedis
- Redis-cluster命令 cluster info 引數資訊解釋Redis
- 【Redis 技術探索】「資料遷移實戰」手把手教你如何實現線上 + 離線模式進行遷移Redis資料實戰指南(離線同步資料)Redis模式
- Redis migrate 資料遷移工具Redis
- 高速遷移MySQL資料到分散式時序資料庫DolphinDBMySql分散式資料庫