項目推薦: Spring Cloud 、Spring Security OAuth2的RBAC權限管理系統 歡迎關注git
因爲生產環境的各類緣由,咱們須要對現有服務器進行遷移,包括線上正在運行的 redis 集羣環境 如何去作?github
涉及到數據源變更,原有數據如何平滑遷移到新實例,從而能夠實現無縫遷移?redis
save\bgsave
觸發數據持久化 RDB
文件load
RDB 文件命令 | save | bgsave |
---|---|---|
IO阻塞 | 同步 | 異步 |
複雜度 | O(n) | O(n) |
缺點 | 阻塞客戶端 | 須要fork,消耗內存 |
redis-dump
導入導出 json
備份redis-dump 基於JSON 備份還原Redis的數據https://github.com/delano/redis-dumpdocker
# 導出命令
redis-dump –u 127.0.0.1:6379 > lengleng.json
# 導出指定數據庫數據
redis-dump -u 127.0.0.1:6379 -d 15 > lengleng.json
# 若是redis設有密碼
redis-dump –u :password@127.0.0.1:6379 > lengleng.json
# 導入命令
< lengleng.json redis-load
# 指定redis密碼
< lengleng.json redis-load -u :password@127.0.0.1:6379
複製代碼
redis-shake
實現 redis-cluster
遷移redis-shake是阿里雲Redis&MongoDB團隊開源的用於redis數據同步的工具https://github.com/alibaba/RedisShake。數據庫
Docker
建立兩個集羣docker run --name redis-cluster1 -e CLUSTER_ANNOUNCE_IP=192.168.0.31 -p 8000-8005:7000-7005 -p 18000-18005:17000-17005 pig4cloud/redis-cluster:4.0
複製代碼
docker run --name redis-cluster2 -e CLUSTER_ANNOUNCE_IP=192.168.0.31 -p 8000-8005:7000-7005 -p 18000-18005:17000-17005 pig4cloud/redis-cluster:4.0
複製代碼
redis-shake.conf
source.type: cluster
source.address: master@192.168.0.31:7000 #配置一個節點自動發現
target.type: cluster
target.address: master@192.168.0.31:8000 #配置一個節點自動發現
複製代碼
# 用戶能夠經過restful監控指標查看內部運行情況,默認的restful端口是9320:
http://127.0.0.1:9320/metric
複製代碼
最近時間寬裕。整點花哨的系列,歡迎關注。json
項目推薦: Spring Cloud 、Spring Security OAuth2的RBAC權限管理系統 歡迎關注bash
最近時間寬裕。整點花哨的系列,歡迎關注。服務器