redis集群部署sentinel--两台实现
来源:互联网 发布:上州屋渔具淘宝店 编辑:程序博客网 时间:2024/05/22 04:37
1.sentinel
redis的sentinel系统用于管理多个redis服务器,主要执行三个任务:
1)监控:sentinel不断检查主从服务器是否运行正常;
2)提醒:当某个redis服务器出现问题,可以通过API发送通知;
3)自动故障迁移:当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作,它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器;当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。
Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress),这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。虽然 Redis Sentinel释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器,你可以在启动一个普通 Redis 服务器时通过给定 –sentinel 选项来启动 Redis Sentinel 。
2.安装环境
本次安装采用两台服务器作为主从服务器,服务器信息如下:
master: 10.133.6.120 6379slave: 10.133.6.126 6379master-sentinel: 10.133.6.120 26379slave-sentinel: 10.133.6.126 26379
在根目录下新建文件夹data1:
[root@redis-1 ~]# cd /[root@redis-1 /]# mkdir data1[root@redis-1 /]# cd data1/
下载redis安装包:(采用的是redis-2.8.4)
[root@redis-1 data1]# wget http://download.redis.io/releases/redis-2.8.4.tar.gz
解压安装:
[root@redis-2 data1]# tar -zxvf redis-2.8.4.tar.gz[root@redis-1 data1]# cd redis-2.8.4[root@redis-2 redis-2.8.4]# make;make install
3.配置redis
[root@redis-1 redis-2.8.4]# cd /usr/local/[root@redis-1 local]# mkdir redis[root@redis-1 local]# cd redis/
主服务器配置redis–master:
[root@redis-1 redis]# cp /data1/redis-2.8.4/redis.conf ./ redis.conf[root@redis-1 redis]# cp /data1/redis-2.8.4/sentinel.conf ./master-sentenel.conf[root@redis-1 redis]# vi redis.conf-------------------------------------------------------------------------------------------####master redis.conf#########启动进程为后台进程daemonize yes####端口port 6379####日志文件路径设置logfile "/data1/log/redis/redis.log"####授权密码,在安全的环境中可以不设置requirepass 123456 masterauth 123456####注释指令重命名,若已配置则不需要修改#rename-command####开启AOFappendonly yessave “”slave-read-only yes-------------------------------------------------------------------------------------------
[root@redis-1 redis]# vi master-sentenel.conf-------------------------------------------------------------------------------------------####master sentinel.conf###启动进程为后台进程daemonize yes##sentinel实例之间的通讯端口port 26379####sentinel需要监控的master信息:<mastername> <masterIP> <masterPort> <quorum>.####<quorum>应该小于集群中slave的个数,只有当至少<quorum>个sentinel实例提交"master失效" 才会认为master为ODWON("客观"失效) .sentinel monitor mymaster 10.133.6.120 6379 2####设置日志路径logfile "/data1/log/redis/sentinel.log"####授权密码,在安全的环境中可以不设置sentinel auth-pass mymaster 123456####master被当前sentinel实例认定为“失效”(SDOWN)的间隔时间sentinel down-after-milliseconds mymaster 30000####当新master产生时,同时进行“slaveof”到新master并进行同步复制的slave个数。##在salve执行salveof与同步时,将会终止客户端请求。##此值较大,意味着“集群”终止客户端请求的时间总和和较大。##此值较小,意味着“集群”在故障转移期间,多个salve向客户端提供服务时仍然使用旧数据。sentinel parallel-syncs mymaster 1####failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failoer失败。sentinel failover-timeout mymaster 180000-------------------------------------------------------------------------------------------
从服务器上部署redis–slave
[root@redis-2 redis]# cp /data1/redis-2.8.4/redis.conf ./ redis.conf[root@redis-2 redis]# cp /data1/redis-2.8.4/sentinel.conf ./slave-sentenel.confroot@redis-2 redis]# vi redis.conf-------------------------------------------------------------------------------------------####slave redis.conf#########启动进程为后台进程daemonize yes####端口port 6379####日志文件路径设置logfile "/data1/log/redis/redis.log"####授权密码,在安全的环境中可以不设置requirepass 123456 masterauth 123456#### IP和端口为Master的IP和端口slaveof 10.133.6.120 6379####注释指令重命名,若已配置则不需要修改#rename-command####开启AOFappendonly yessave “”slave-read-only yes-------------------------------------------------------------------------------------------
[root@redis-2 redis]# vi slave-sentenel.conf-------------------------------------------------------------------------------------------####slave sentinel.conf###启动进程为后台进程daemonize yes##sentinel实例之间的通讯端口port 26379####sentinel需要监控的master信息:<mastername> <masterIP> <masterPort> <quorum>.####<quorum>应该小于集群中slave的个数,只有当至少<quorum>个sentinel实例提交"master失效" 才会认为master为ODWON("客观"失效) .sentinel monitor mymaster 10.133.6.120 6379 2####设置日志路径logfile "/data1/log/redis/sentinel.log"####授权密码,在安全的环境中可以不设置sentinel auth-pass mymaster 123456####master被当前sentinel实例认定为“失效”(SDOWN)的间隔时间sentinel down-after-milliseconds mymaster 30000####当新master产生时,同时进行“slaveof”到新master并进行同步复制的slave个数。##在salve执行salveof与同步时,将会终止客户端请求。##此值较大,意味着“集群”终止客户端请求的时间总和和较大。##此值较小,意味着“集群”在故障转移期间,多个salve向客户端提供服务时仍然使用旧数据。sentinel parallel-syncs mymaster 1####failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作,当前sentinel将会认为此次failoer失败。sentinel failover-timeout mymaster 180000-------------------------------------------------------------------------------------------
4.启动
首次构建必须先启动master的redis。
启动master和master-sentinel:
[root@redis-1 redis]# redis-server --include /usr/local/redis/ redis.conf[root@redis-2 redis]# /data1/redis-2.8.4/src/redis-sentinel /usr/local/redis/master-sentinel.conf
启动slave和slave-sentinel:
[root@redis-1 redis]# redis-server --include /usr/local/redis/ redis.conf[root@redis-2 redis]# /data1/redis-2.8.4/src/redis-sentinel /usr/local/redis/slave-sentinel.conf
5.测试
查看master状态
[root@redis-1 redis]# redis-cli -h 10.133.6.120 -p 6379
查看slaver状态
[root@redis-2 redis]# redis-cli -h 127.0.0.1 -p 6379
1)关闭master
10.133.6.120:6379> shutdown
此时,slave状态(迁移需要等待1到2分钟)
重启master,状态
[root@redis-1 redis]# redis-server --include /usr/local/redis/redis.conf
实现了迁移
2)关闭slave(此时slave下redis状态为master)
状态信息如下:
关闭slave
127.0.0.1:6379> shutdown
此时master下状态
重启slaver,状态
[root@redis-2 redis]# redis-server --include /usr/local/redis/redis.conf
- redis集群部署sentinel--两台实现
- redis集群部署sentinel—两台服务器实现
- redis+sentinel集群部署
- CentOS 7.3 Sentinel实现Redis集群高可用部署
- Redis(Sentinel)监控集群安装部署
- Redis Sentinel实现集群节点故障转移
- 借助sentinel 实现redis集群HA配置
- redis sentinel部署(Windows下实现)
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis主从集群搭建及容灾部署(哨兵sentinel)
- Redis 3.2.8 集群模式+Sentinel多Master部署
- redis主从集群搭建及容灾部署(哨兵sentinel)
- redis-3.2.8-Sentinel集群安装和部署
- redis主从集群搭建及容灾部署(哨兵sentinel)
- Redis 3.2.8 集群模式+Sentinel多Master部署
- Redis sentinel集群实验
- Byteman教程
- java执行SQL语句实现查询的通用方法
- ZOJ Help Bob 3882【博弈】
- 黑马程序员-----Java基础-----集合工具类,jdk1.5新特性,其他对象
- WPF学习之数据绑
- redis集群部署sentinel--两台实现
- 什么叫资源整合?
- uva 11732 "strcmp()" Anyone? (trie+左儿子右兄弟表示法)
- 网易内推电话面试(一面)
- poj 1995 Raising Modulo Numbers 【快速幂 裸题】
- noip2000税收与补贴问题 (模拟,排序)
- iOS appStore中的应用 实现版本升级功能
- codeforce 558B Amr and The Large Array 思维题
- maven 手动加入jar到本地资源库