安装完redis后,修改几个redis从节点的配置文件redis.conf,主要是加入主节点位置

slaveof 192.168.0.108 

另外需要修改的地方包括,这样允许其他的从节点连入

bind 0.0.0.0
protected-mode no

启动redis主节点和从节点

./redis-server redis.conf

查看主节点信息

./redis-cli -h 192.168.0.108  info Replication
# Replication
role:master
connected_slaves:
slave0:ip=192.168.0.104,port=,state=online,offset=,lag=
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

而在192.168.0104上查看信息,看到一方面作为192.168.0.108的从节点,另外192.168.0.107从192.168.0.104上复制数据.

[root@redisserver bin]# ./redis-cli -h 192.168.0.104  info Replication
# Replication
role:slave
master_host:192.168.0.108
master_port:
master_link_status:up
master_last_io_seconds_ago:
master_sync_in_progress:
slave_repl_offset:
slave_priority:
slave_read_only:
connected_slaves:
slave0:ip=192.168.0.107,port=,state=online,offset=,lag=
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

在192.168.0.107上的信息

./redis-cli -h 192.168.0.107 info Replication
# Replication
role:slave
master_host:192.168.0.104
master_port:
master_link_status:up
master_last_io_seconds_ago:
master_sync_in_progress:
slave_repl_offset:
slave_priority:
slave_read_only:
connected_slaves:
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

启动Redis-sentinel哨兵服务

Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:

  • 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。
  • 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。
  • 自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。

虽然 Redis Sentinel 释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器, 你可以在启动一个普通 Redis 服务器时通过给定 –sentinel 选项来启动 Redis Sentinel 。

在192.168.0.107上编辑一个sentinel.conf配置文件

sentinel monitor redisslave2 192.168.0.108  

意思是监听主节点redisslave2主机名,ip为192.168.0.108 6379,主实例判断为失效至少需要1个 Sentinel进程的同意.

启动sentinel进程

./redis-sentinel sentinel.conf

[root@redisslave1 bin]# ./redis-sentinel ../etc/sentinel.conf
31843:X 19 Jul 09:14:59.356 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.9 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in sentinel mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 26379
| `-._ `._ / _.-' | PID: 31843
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'

31843:X 19 Jul 09:14:59.360 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
31843:X 19 Jul 09:14:59.369 # Sentinel ID is a29b3e6df6406c2870301cb39db0de5fc9bcf884
31843:X 19 Jul 09:14:59.369 # +monitor master redisslave2 192.168.0.108 6379 quorum 1
31843:X 19 Jul 09:14:59.371 * +slave slave 192.168.0.104:6379 192.168.0.104 6379 @ redisslave2 192.168.0.108 6379

将192.168.0.108的master停掉,发现sentinel输出为

:X  Jul ::41.307 # +sdown master redisslave2 192.168.0.108
:X Jul ::41.307 # +odown master redisslave2 192.168.0.108 #quorum /
:X Jul ::41.307 # +new-epoch
:X Jul ::41.307 # +try-failover master redisslave2 192.168.0.108
:X Jul ::41.314 # +vote-for-leader a29b3e6df6406c2870301cb39db0de5fc9bcf884
:X Jul ::41.314 # +elected-leader master redisslave2 192.168.0.108
:X Jul ::41.314 # +failover-state-select-slave master redisslave2 192.168.0.108
:X Jul ::41.367 # +selected-slave slave 192.168.0.104: 192.168.0.104 @ redisslave2 192.168.0.108
:X Jul ::41.367 * +failover-state-send-slaveof-noone slave 192.168.0.104: 192.168.0.104 @ redisslave2 192.168.0.108
:X Jul ::41.468 * +failover-state-wait-promotion slave 192.168.0.104: 192.168.0.104 @ redisslave2 192.168.0.108
:X Jul ::41.684 # +promoted-slave slave 192.168.0.104: 192.168.0.104 @ redisslave2 192.168.0.108
:X Jul ::41.685 # +failover-state-reconf-slaves master redisslave2 192.168.0.108
:X Jul ::41.770 # +failover-end master redisslave2 192.168.0.108
:X Jul ::41.770 # +switch-master redisslave2 192.168.0.108 192.168.0.104
:X Jul ::41.771 * +slave slave 192.168.0.108: 192.168.0.108 @ redisslave2 192.168.0.104
:X Jul ::42.190 * +slave slave 192.168.0.107: 192.168.0.107 @ redisslave2 192.168.0.104
+switch-master redisslave2 192.168.0.108 6379 192.168.0.104 6379表示已经切换到192.168.0.104号节点.
[root@redisserver bin]# ./redis-cli -h 192.168.0.104  info Replication
# Replication
role:master
connected_slaves:
slave0:ip=192.168.0.107,port=,state=online,offset=,lag=
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

而当192.168.0.108重新启动后已经变成从节点,集群切换完成。

[root@redisslave2 bin]# ./redis-cli -h 192.168.0.108  info Replication
# Replication
role:slave
master_host:192.168.0.104
master_port:
master_link_status:up
master_last_io_seconds_ago:
master_sync_in_progress:
slave_repl_offset:
slave_priority:
slave_read_only:
connected_slaves:
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:
 

Redis主从集群以及Sentinel的配置的更多相关文章

  1. docker搭建redis主从集群和sentinel哨兵集群,springboot客户端连接

    花了两天搭建redis主从集群和sentinel哨兵集群,讲一下springboot客户端连接测试情况 redis主从集群 从网上查看说是有两种方式:一种是指定配置文件,一种是不指定配置文件 引用地址 ...

  2. 02.Redis主从集群的Sentinel配置

    1.集群环境 1.Linux服务器列表 使用4台CentOS Linux服务器搭建环境,其IP地址如下: 192.168.110.100 192.168.110.101 192.168.110.102 ...

  3. Redis主从集群的Sentinel配置

    http://www.cnblogs.com/LiZhiW/p/4851631.html

  4. 一、全新安装搭建redis主从集群

    前言· 这里分为三篇文章来写我是如何重新搭建redis主从集群和哨兵集群的及原本服务器上有单redis如何通过升级脚本来实现redis集群.(redis结构:主-从(备)-从(备)) 至于为什么要搭建 ...

  5. Redis主从集群及哨兵模式

    本次实验环境准备用一台服务器模拟3台redis服务器,1主2从 主从集群搭建 第一步:安装Redis 安装Redis,参考前面安装Redis文章,保证单机使用没有问题. 第二步:配置服务器文件 定位到 ...

  6. Redis 主从集群搭建及哨兵模式配置

    最近搭建了redis集群及哨兵模式,为方便以后查看特此记录下来: 1.Redis安装 2.主从架构 2.1 Redis主从架构图 2.2Redis主从结构搭建 Redis集群不用安装多个Redis,只 ...

  7. redis主从集群搭建及容灾部署(哨兵sentinel)

    Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 ...

  8. Redis主从,集群部署及迁移

    工作中有时会遇到需要把原Redis集群下线,迁移到另一个新的Redis集群的需求(如机房迁移,Redis上云等原因).此时原Redis中的数据需要如何操作才可顺利迁移到一个新的Redis集群呢? 本节 ...

  9. redis —主从&&集群(CLUSTER)

    REDIS主从配置 为了节省资源,本实验在一台机器进行.即,在一台机器上启动两个端口,模拟两台机器. 机器准备: [root@adailinux ~]# cp /etc/redis.conf /etc ...

随机推荐

  1. iBatis应用--控制执行SQL时的超时时间

    https://blog.csdn.net/jackie_xiaonan/article/details/8459320

  2. ArrayList中重复元素处理方法.[Java]

    1.使用HashSet删除ArrayList中重复的元素 private static void sortByHashSet() { ArrayList<String> listWithD ...

  3. 2017-2018-1 20179202《Linux内核原理与分析》第二周作业

    本周着重学习了汇编指令,并通过反汇编C程序了解栈帧变化. 实践 看了孟老师的演示视频后,我重新写了C程序,如下: int main() { int a=1,b=2; return g(a,b); } ...

  4. HDU 6029 Graph Theory

    贪心. 每次找到后面最近的一个能连边的连边. #include <bits/stdc++.h> using namespace std; ; int T,n,k; ],b[],u[]; i ...

  5. Jquery操作select标签的常用方法

    <select id="search"> <option value='1'>baidu</option> <option value=' ...

  6. 二分+并查集【bzoj3007】[SDOI2012]拯救小云公主

    Description 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意 ...

  7. Python开发基础-Day31 Event对象、队列和多进程基础

    Event对象 用于线程间通信,即程序中的其一个线程需要通过判断某个线程的状态来确定自己下一步的操作,就用到了event对象 event对象默认为假(Flase),即遇到event对象在等待就阻塞线程 ...

  8. 【BZOJ 3136】 3136: [Baltic2013]brunhilda (数论?)

    3136: [Baltic2013]brunhilda Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 238  Solved: 73[Submit][ ...

  9. AtcoderGrandContest 005 F. Many Easy Problems

    $ >AtcoderGrandContest \space 005 F.  Many Easy Problems<$ 题目大意 : 有一棵大小为 \(n\) 的树,对于每一个 \(k \i ...

  10. 【Pollard-rho算法】【DFS】poj2429 GCD & LCM Inverse

    题意:给你一两个数m和n,它们分别是某对数A,B的gcd和lcm,让你求出一对使得A+B最小的A,B. n/m的所有质因子中,一定有一部分是只在A中的,另一部分是只在B中的. 于是对n/m质因子分解后 ...