Redis集群做法的难点,百万并发客户端「实战」( 四 )
启动容器
docker-compose up -d redis-sentinel-slave2
执行以上命令后 , 就启动了三个哨兵模式的容器
文章插图
这是我们进入容器 , 查看是否redis-sentinel是否在工作 。
文章插图
我们可看到 , 已经与master建立连接 , 通过status=ok可以知道 , master正在正常工作 , 并且有2个从节点和3个哨兵节点 。 现在你再打开sentinel的配置文件 , 会发现发生了改变 。
文章插图
conf文件被重写了 , 并且哨兵模式会自动检测到master的两个slave和另外两个sentinel 。
故障演示
1、使master宕机 , 只需要关闭master的容器即可 。
文章插图
如果此时再去三个哨兵节点里用info sentinel查看信息 。
文章插图
会发现这时候master节点的address信息变了 , 这就说明哨兵模式起作用了 。 但他这里还是显示新的master有两个slave 。 是因为原master节点宕机了 , 一旦它重启 , sentinel就会把它变成新的master节点的slave节点 。 我们可以去172.18.0.6这个容器中看下 。
文章插图
可以用以上docker命令查看容器的IP地址 。 进入容器后 , 还是在redis-cli下用info replication查看信息 。
文章插图
我们可以看到这个slave变成了新的master , 另外一个slave也变成了新master节点的slave 。 如果你查看redis节点的配置文件 , 会发现也被重写了 。这是我们再重启原master节点试试(注意:当他重启成功后 , 就变成了slave节点 , 所以要打开持久化配置) 。
文章插图
当容器重启成功后 , 我们再去新的master节点中使用info replication查看下 。
文章插图
正如我们所料 , 它成为了新的master的slave节点 。 如果你查看原master的配置文件 , 会发现多了
文章插图
最后 , 因为新的master节点是slave节点升级的 , 所以他的持久化配置还是存在的 , 如果你想要关掉它 , 只需要进入redis-cli , 然后执行
文章插图
至此 , 一次redis的master节点故障转移就演示完成了 。 这次演示实现了redis的监控和自动故障转移特性 。
提醒特性是使用的订阅功能 , 需要后端代码开发配合的 。
Cluster模式
部署
- 这里使用ruby部署redis cluster , 首先下载安装 , 只需要在一台服务器上安装即可yum install rubyyum install rubygems
- 下载ruby运行需要的包 , 这里是redis-3.3.5.gem , 安装gem install redis-3.3.5.gem
- 拷贝redis/src/redis-trib.rb 到redis安装目的 , 我这里是/data/service/bin/
- 果粉有福了,苹果正式宣布新规,这个做法很库克
- 华为强行排除小米!而小米的做法却很亮眼!这次小米更有格局
- java 从零实现属于你的 redis 分布式锁
- HFL Redis_10_set类型底层存储数据结构
- 上海|全球科技集群100强发布,北京、上海、粤港三城跻身前十
- 为什么 Redis 单线程能支撑高并发?
- Redis流行的原因
- 摸方向盘就换挡、激光去污、磁悬浮雨刷,特斯拉尝试韭菜新做法
- 谁更有良心显而易见!关于手机屏幕,华为、OPPO做法差距明显
- C# Redis分布式锁 - 单节点