redis集群同步迁移方法(一):通过redis replication实现
- 采用redis replication实现
- 使用开源同步开源工具
- 启动三个目标节点,配置了redis集群模式的实例
redis-server redis13000.conf
redis-server redis13001.conf
redis-server redis13002.conf
- 将这三个节点做已有集群实例的slave
redis-cli -p cluster meet 127.0.0.1
redis-cli -p cluster replicate e5ce695f7c5745ca81b4239fb5666b6a71fbb4ea
redis-cli -p cluster meet 127.0.0.1
redis-cli -p cluster replicate f63f0d52372ad8b5c414c47e9318717b6aa113cc
redis-cli -p cluster meet 127.0.0.1
redis-cli -p cluster replicate fdeb68f696290a91f08a5da3b8a3c585aaa35856
- 查看集群情况:
redis-cli -p cluster slots
) ) (integer)
) (integer)
) ) "127.0.0.1"
) (integer)
) ) "127.0.0.1"
) (integer)
) ) (integer)
) (integer)
) ) "127.0.0.1"
) (integer)
) ) "127.0.0.1"
) (integer)
) ) (integer)
) (integer)
) ) "127.0.0.1"
) (integer)
) ) "127.0.0.1"
) (integer)
- 将其中一个主节点下线,10s后观察情况:
redis-cli -p shutdown
redis-cli -p cluster nodes
fdeb68f696290a91f08a5da3b8a3c585aaa35856 127.0.0.1: master - connected -
f63f0d52372ad8b5c414c47e9318717b6aa113cc 127.0.0.1: master - connected -
e39a73c30dfff3139242e66f8e0a41178b39e280 127.0.0.1: myself,master - connected -
1f552bdea453caeaa64b4b33a05e4eedeb3f3dd2 127.0.0.1: slave f63f0d52372ad8b5c414c47e9318717b6aa113cc connected
6a70a82c6f07dc4e61a97b6aee7a2994365642cc 127.0.0.1: slave fdeb68f696290a91f08a5da3b8a3c585aaa35856 connected
e5ce695f7c5745ca81b4239fb5666b6a71fbb4ea 127.0.0.1: master,fail - disconnected
- 删除已经下线的主节点,一个一个操作,操作中间检查操作是否成功,因为留言协议和failover需要一段时间
redis-cli -p cluster forget e5ce695f7c5745ca81b4239fb5666b6a71fbb4ea
redis-cli -p cluster forget e5ce695f7c5745ca81b4239fb5666b6a71fbb4ea
redis-cli -p cluster forget e5ce695f7c5745ca81b4239fb5666b6a71fbb4ea
redis-cli -p cluster nodes
fdeb68f696290a91f08a5da3b8a3c585aaa35856 127.0.0.1: master - connected -
f63f0d52372ad8b5c414c47e9318717b6aa113cc 127.0.0.1: master - connected -
e39a73c30dfff3139242e66f8e0a41178b39e280 127.0.0.1: myself,master - connected -
1f552bdea453caeaa64b4b33a05e4eedeb3f3dd2 127.0.0.1: slave f63f0d52372ad8b5c414c47e9318717b6aa113cc connected
6a70a82c6f07dc4e61a97b6aee7a2994365642cc 127.0.0.1: slave fdeb68f696290a91f08a5da3b8a3c585aaa35856 connected redis-cli -p cluster nodes
e39a73c30dfff3139242e66f8e0a41178b39e280 127.0.0.1: myself,master - connected -
1f552bdea453caeaa64b4b33a05e4eedeb3f3dd2 127.0.0.1: slave - connected
6a70a82c6f07dc4e61a97b6aee7a2994365642cc 127.0.0.1: slave - connected
- 删除的主节点,如果重新启动,他自身会重新加载集群配置文件,造成集群混乱,建议如果想重启该实例,删掉集群配置文件,进行重新配置。
- 必须先关闭master节点后,再删除。一次不能将所有实例都关闭,逐个操作,否则会造成整个集群down掉
- 删除forget节点时,要在所有其他节点上执行cluster forget 命令,貌似这个命令不会通过留言协议传播到所有节点
redis集群同步迁移方法(一):通过redis replication实现的更多相关文章
- redis集群同步迁移方法(二):通过redis-migrate-tool实现
前篇介绍的redis replication方法,操作步骤多,而且容易出错.在git上看到一些开源工具也能实现同步迁移功能,而且步骤简单,比如redis-port,redis-migrate-tool ...
- Spring集成Redis集群(含spring集成redis代码)
代码地址如下:http://www.demodashi.com/demo/11458.html 一.准备工作 安装 Redis 集群 安装参考: http://blog.csdn.net/zk6738 ...
- Redis集群迁移
1:开发中断程序,登录各个主节点查看key信息 INFO # Keyspace db0:keys,expires,avg_ttl # Keyspace db0:keys,expires,avg_ttl ...
- Redis集群同步问题
之前被面试官问到:Redis集群中主从数据同步是从库异步读取主库,那么Redis集群其他主与主之间的数据是怎么共享的呢?或者说是怎么同步的? emmmm……当时我就懵逼了,这不是考试范围啊卧槽~只能老 ...
- springBoot2.*使用redis集群/单机方法
在springboot1.x系列中,其中使用的是jedis,但是到了springboot2.x其中使用的是Lettuce. 此处springboot2.x,所以使用的是Lettuce.关于jedis跟 ...
- Redis集群(二):Redis的安装
官方网站:http://redis.io/ 本系列撒使用的版本是:3.0.0 一.安装必要包 yum -yinstall gcc 二.linux下安装及使用(wget下载到当前目录) redis-3. ...
- <正则吃饺子> :关于redis集群的搭建、集群测试、搭建中遇到的问题总结
项目中使用了redis ,对于其基本的使用,相对简单些,根据项目中已经提供的工具就可以实现基本的功能,但是只是这样的话,对于redis还是太肤浅,甚至刚开始时候,集群.多节点.主从是什么,他们之间是什 ...
- Redis集群搭建的三种方式
一.Redis主从 1.1 Redis主从原理 和MySQL需要主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生性能瓶颈,特别是在读压力上,为了分担压力,Redis支持主从复制. ...
- redis集群数据迁移
redis集群数据备份迁移方案 n 迁移环境描述及分析 当前我们面临的数据迁移环境是:集群->集群. 源集群: 源集群为6节点,3主3备 主 备 192.168.112.33:8001 192 ...
随机推荐
- [原] wmic: Invalid XSL format (or) file name错误解决方法
之前运行wmic命令正确,今天在服务器上出现Invalid XSL format (or) file name的提示,搜索了一下,在这里找到了答案: http://www.ctkn.net/2011/ ...
- 2016-12-15 java开发工作中,尚未做的工作
目前未涉及的工作内容: 1.将静态页导入工程,建成jsp文件.配置css.js.img文件.跳转路径 2.未用工具生成pojo dao service等源码文件 3.未签入自己写的代码 4.未搭建子系 ...
- 怎样让SoapHttpClientProtocol不使用系统默认代理
方法很简单,但找起来很难. 使用SoapHttpClientProtocol类的Proxy属性. 不能设空值,必须设一个新值. 赶脚底层在链接的时候会判断这个属性是不是null,如果null就会用默认 ...
- IOS开发之--NSPredicate
我把常用的NSPredicate使用场景整理了一下 官方参考: https://developer.apple.com/library/mac/#documentation/Cocoa/Refer ...
- Android ShapeDrawable无法上色
在Android中的View设置背景时,使用ShapeDrawable有可能出现无法上色的问题(最终背景为黑色),例如,使用如下的代码为控件设置颜色时,控件背景将会变成黑色 ShapeDrawable ...
- 黄聪:解决Web部署 svg/woff/woff2字体 404错误
问题:最近在IIS上部署web项目的时候,发现浏览器总是报找不到woff.woff2字体的错误.导致浏览器加载字体报404错误,白白消耗了100-200毫秒的加载时间. 原因:因为服务器IIS不认SV ...
- 使用 Linq 对多个对象进行join操作 C#
class A { public int id { get; set; } public string name { get; set; } } class B { public int id { g ...
- 代码管理 – SVN
代码管理工具也用了不少年了,整理下. 管理工具比较 用过VSS,CVS,TFS,SVN还有一个微软内部使用的不记得什么名字了.这里进行一些简单比较,重点介绍SVN的用法. CVS历史悠久,1986年就 ...
- 【webpy开发实战】webpy的cookbook 个人版
版本:webpy0.3 问题1.1 所需软件及环境配置? 解决办法 sqlite: jinja2:找不到jinja2模块时,将jinja模块文件夹加入 sys.path -> sys.path ...
- oracle ||,
|| oracle数据库中的 ||称为 "字符串连接符" 用于连接查询结果,如下: select trade_id,accept_date from A; ------------ ...