Redis+sentinel 高可用实践

1、环境规划

  1. 10.213.50.138(主) redis+sentinel
  2. 10.213.50.168(从) redis+sentinel
  3. 10.213.50.227  作为客户端测试插入数

2、redis部署

wget http://download.redis.io/releases/redis-3.2.9.tar.gz
tar zxvf redis-3.2.9.tar.gz
cd redis-3.2.9
make && make install

cd utils/

./install_server.sh  #初始化脚本

3、redis配置(master)

bind 0.0.0.0
protected-mode yes
port 6379
daemonize yes
pidfile "/var/run/redis_6379.pid"
logfile "/var/log/redis_6379.log"

redis从配置
bind 0.0.0.0
protected-mode yes
port 6379
daemonize yes
pidfile "/var/run/redis_6379.pid"
logfile "/var/log/redis_6379.log"
slaveof  10.213.50.138  6379   #从redis比主redis多这一行

启动redis并检查info replication  是否正常
redis-server /etc/redis/6379.conf  在从redis上面观察

4、配置redis-sentinel

protected-mode no
daemonize yes
port 26379
logfile "/var/log/redis/sentinel.log"
pidfile "/var/run/sentinel.pid"
sentinel monitor mymaster 10.213.50.138 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 15000
sentinel client-reconfig-script mymaster /etc/notify_mymaster.sh
启动redis-sentinel  并检查状态
redis-sentinel /etc/sentinel.conf

5、vip漂移脚本,需要执行权限

cat /etc/notify_mymaster.sh #!/bin/bash
MASTER_IP=$6
LOCAL_IP=‘10.213.50.168‘
VIP=‘10.213.50.188‘
NETMASK=‘24‘
INTERFACE=‘eth0‘
if [ ${MASTER_IP} = ${LOCAL_IP} ]; then
        /sbin/ip addr add ${VIP}/${NETMASK} dev ${INTERFACE}
        /sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE}
       exit 0
else
        /sbin/ip addr del ${VIP}/${NETMASK} dev ${INTERFACE}
       exit 0
fi
exit 1

6、客户端测试数据

cat redis.sh
#!/bin/bash
for ((i=0;i<20000;i++))
do
echo -en "helloworld" | redis-cli -h 10.213.50.188 -x set name$i >>redis.log
sleep 1
done

7、绑定vip到主库

/sbin/ip addr add 10.213.50.188/24 dev eth0

8、停止主redis观察从库

从库变成了主库,并且vip地址漂移过来了

客户端插入数据会中断,中断时间就是redis  vip漂移及redis从库提升到主库的时间

原文地址:https://www.cnblogs.com/hellojackyleon/p/8818318.html

时间: 2024-10-08 20:46:57

Redis+sentinel 高可用实践的相关文章

Redis Sentinel高可用架构

Redis目前高可用的架构非常多,比如keepalived+redis,redis cluster,twemproxy,codis,这些架构各有优劣,今天暂且不说这些架构,今天主要说说redis sentinel高可用架构. 它的主要功能有以下几点 不时地监控redis是否按照预期良好地运行; 如果发现某个redis节点运行出现状况,能够通知另外一个进程(例如它的客户端); 能够进行自动切换.当一个master节点不可用时,能够选举出master的多个slave(如果有超过一个slave的话)中

Redis Sentinel 高可用实现说明

背景:      前面介绍了Redis 复制.Sentinel的搭建和原理说明,通过这篇文章大致能了解Sentinel的原理和实现方法以及相关的搭建.这篇文章就针对Redis Sentinel的搭建做下详细的说明. 安装:      这里对源码编译进行一下说明,本文实例的操作系统是Ubuntu16.04,使用Redis的版本是3.2.0.安装步骤如下: 下载源码包:wget http://download.redis.io/releases/redis-3.2.0.tar.gz 安装依赖包:su

Redis Sentinel高可用配置及C#访问

本文环境如下: 操作系统:ubuntu-14.04.1-desktop-amd64 Redis:2.8.19 如果使用虚拟机则将每台的网络设置为桥接,否则他们之间能连上,局域网连不上. 系统设计如图: 一.安装Redis 可以参考之前文章,采用离线安装,本次以Sentinel配置为重,所以以联网安装为例. 呼出ubuntu终端,依次执行下面命令: wget http://download.redis.io/releases/redis-2.8.19.tar.gz tar xzf redis-2.

redis sentinel 高可用集群

redis是目前比较火爆的nosql开源软件.他因为丰富的数据类型和每秒80k+的速度对有高并发,大访问量要求的应用场景是很好的选择.我用redis主要用来做数据的cache.以及分布式系统中session的集中存储.为了解决redis的单点故障,提高redis的可靠性,以前的做法是用Keepalived来控制虚IP的浮动,来进行热备.随着redis2.8和3.0版本的诞生.目前官网支持sentinel模式的热备,sentinel是哨兵,不断监听目前redis的存活状态.整体采用一主多备的模式.

Redis 高可用实践

Sentinel 简介 如上图所示,Redis 高可用是通过Sentinel来实现的,是Redis官方推荐的高可用性(HA)解决方案,Sentinel英文含义是哨兵,放哨的,可以理解为它是Redis集群的监控者,监控着所有的master和slave机器的健康状况.首先我们来看下它提供了哪些功能. 1.监控(Monitoring):监控所有主从机的健康状态,当主从机连接出现问题时,会自动变更有问题机器的状态.2.通知(Notification):一旦集群的节点有问题,Sentinel可以通过API

Redis Sentinel安装与部署,实现redis的高可用

前言 对于生产环境,高可用是避免不了要面对的问题,无论什么环境.服务,只要用于生产,就需要满足高可用:此文针对的是redis的高可用. 接下来会有系列文章,该系列是对spring-session实现分布式集群session的共享的完整阐述,同时也引伸出缓存的实现:而此篇是该系列的第一篇. github地址:https://github.com/youzhibing/redis 环境准备 redis版本:redis-3.0.0 linux:centos6.7 ip:192.168.11.202,

redis 系列25 哨兵Sentinel (高可用演示 下)

一. Sentinel 高可用环境准备 1.1 Sentinel 集群环境 环境 说明 操作系统版本 CentOS  7.4.1708  IP地址 172.168.18.200 网关Gateway 172.168.18.1 DNS 172.168.16.11 三个sentinel服务端口 26379,26380,26381 Sentinel密码 无 不设置 是否RDB持久化 不支持 是否 AOF持久化 不支持 1.2 Redis主库库环境,主从库搭建在(redis 系列22 复制Replicat

Redis的高可用(使用篇)

Redis的复制解决了单点问题,但主节点若出现故障,则要人工干预进行故障转移.先看看1主2从(master,slave-1和slave-2)的Redis主从模式下,如何进行故障转移的. 1. 主节点发生故障后,客户端连接主节点失败,两个从节点与主节点连接失败造成复制中断. 2. 需要选出一个从节点(slave-1),对其执行slaveof no one命令使其成为新的主节点(new-master). 3. 从节点(slave-1)成为新的主节点后,更新应用方的主节点信息,重新启动应用方. 4.

部署redis主从高可用集群

部署redis主从高可用集群本文部署的redis集群是一主一从,这两台服务器都设置了哨兵进程,另外再加一台哨兵做仲裁,建议哨兵数量为基数172.16.1.187    redis主+哨兵172.16.1.188    redis从+哨兵172.16.1.189    哨兵以上系统均为CentOS6 在187,188,189上部署redis过程如下:(1)redis使用编译安装方式,所以需要安装编译基本组件# yum -y install gcc gcc-c++ make cmake cpp gl