Redis+sentinel 高可用实践
1、环境规划
10.213.50.138(主) redis+sentinel10.213.50.168(从) redis+sentinel10.213.50.227 作为客户端测试插入数
2、redis部署
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
1: 解压到/usr/local/src 目录:放源码包
root@redis1:/usr/local/src# tar zxvf redis-3.2.9.tar.gz
root@redis1:/usr/local/src# ls -lh
drwxrwxr-x 6 root root 4.0K 2月 22 15:01 redis-3.2.9 2:创建目录:/usr/local/redis,编译安装到目录/usr/local/redis/ --放执行文件
make PREFIX=/usr/local/redis install 3:程序做软连接到bin目录,方便直接执行
ln -s /usr/local/redis/bin/redis-cli /usr/local/bin/redis-cli
ln -s /usr/local/redis/bin/redis-sentinel /usr/local/bin/redis-sentinel
ln -s /usr/local/redis/bin/redis-server /usr/local/bin/redis-server
1:复制配置文件,在源码包里有sentinel.conf和redis.conf文件,复制到/etc/redis/目录下,如果有多个实例,建议改名,如本实例用的redis端口是7021,sentinel是17021:
cp /usr/local/src/redis-3.2.9/redis.conf /etc/redis/redis_7021.conf
cp /usr/local/src/redis-3.2.9/sentinel.conf /etc/redis/sentinel_17021.conf
后面会给出该配置文件的相关参数 2:做成一个服务,在源码包里的utils目录下的redis_init_script文件复制到/etc/init.d/下,并且改名成redis,以后就可以通过这个程序进行关闭和开启了。
cp /usr/local/src/redis-3.2.9/utils/redis_init_script /etc/init.d/redis 3:修改/etc/init.d/redis文件(后面会给出redis程序的代码),使得开启和关闭,以及关闭的时候需要输入密码(假设redis需要认证)。
3、redis配置(master)
bind 0.0.0.0
protected-mode yes
port
daemonize yes
pidfile "/var/run/redis_6379.pid"
logfile "/var/log/redis_6379.log" redis从配置
bind 0.0.0.0
protected-mode yes
port
daemonize yes
pidfile "/var/run/redis_6379.pid"
logfile "/var/log/redis_6379.log"
slaveof 10.213.50.138 #从redis比主redis多这一行,
#######master设置密码的情况下同步数据,其实很简单,我们只要让slave能连上master就可以了,我们在slave的配置文件中加一句话即可。
masterauth 123456 sentinel 则也要加入加密,放在monitor下面
sentinel monitor master 127.0.0.1 6379 1
sentinel auth-pass mymaster redis123
启动redis并检查info replication 是否正常 redis-server /etc/redis/.conf 在从redis上面观察

4、配置redis-sentinel
protected-mode no
daemonize yes
port
logfile "/var/log/redis/sentinel.log"
pidfile "/var/run/sentinel.pid"
sentinel monitor mymaster 10.213.50.138
sentinel down-after-milliseconds mymaster
sentinel failover-timeout mymaster
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=$
LOCAL_IP='10.213.50.168'
VIP='10.213.50.188'
NETMASK=''
INTERFACE='eth0'
if [ ${MASTER_IP} = ${LOCAL_IP} ]; then
/sbin/ip addr add ${VIP}/${NETMASK} dev ${INTERFACE}
/sbin/arping -q -c -A ${VIP} -I ${INTERFACE}
exit
else
/sbin/ip addr del ${VIP}/${NETMASK} dev ${INTERFACE}
exit
fi
exit
6、客户端测试数据
cat redis.sh
#!/bin/bash
for ((i=;i<;i++))
do
echo -en "helloworld" | redis-cli -h 10.213.50.188 -x set name$i >>redis.log
sleep
done
7、绑定vip到主库
/sbin/ip addr add 10.213.50.188/24 dev eth0
8、停止主redis观察从库


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


客户端插入数据会中断,中断时间就是redis vip漂移及redis从库提升到主库的时间
Redis+sentinel 高可用实践的更多相关文章
- Redis|Sentinel 高可用架构
一 前言 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端 ...
- Redis Sentinel 高可用实现说明
背景: 前面介绍了Redis 复制.Sentinel的搭建和原理说明,通过这篇文章大致能了解Sentinel的原理和实现方法以及相关的搭建.这篇文章就针对Redis Sentinel的搭建做 ...
- Redis Sentinel高可用架构
Redis目前高可用的架构非常多,比如keepalived+redis,redis cluster,twemproxy,codis,这些架构各有优劣,今天暂且不说这些架构,今天主要说说redis se ...
- Redis Sentinel 高可用服务搭建
阅读目录: 关于 Redis 的概念 关于 Redis Sentinel 的概念 搭建 Redis Server(master) 搭建 Redis Server(slave) 搭建 Redis Sen ...
- 【转载】Redis Sentinel 高可用服务架构搭建
作者:田园里的蟋蟀 出处:http://www.cnblogs.com/xishuai/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 阅读 ...
- Redis Sentinel 高可用方案
redis 主从复制的问题 Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用: 1,一旦主节点宕机,从节点作为主节点的备份可以随时顶上来. 2,扩展主节点的读能力,分担主节点读压 ...
- Redis Sentinel 高可用部署实践集群
一.Redis Sentinel 介绍 1.Sentinel 数据库环境搭建,从单机版到主备.再到多数据库集群,我们需要一个高可用的监控:比如Mysql中,我们可能会采用MHA来搭建我们 ...
- redis sentinel 高可用(HA)方案部署,及python应用示例
redis sentinel(哨兵)高可用集群的部署方法,并通过 python 程序实例讲解如何使用 redis sentinel 简介 介绍 redis sentinel(哨兵)集群的部署,配置一主 ...
- Redis Sentinel 高可用机制
内容目录: Sentinel 如何工作的? 核心配置项 怎么选出新 master 的? Sentinel 有多个,具体谁来执行故障转移? Sentinel 是怎么发现 slave 和其他 sentin ...
随机推荐
- Websocket教程SpringBoot+Maven整合(详情)
1.大话websocket及课程介绍 简介: websocket介绍.使用场景分享.学习课程需要什么基础 笔记: websocket介绍: WebSocket协议是基于TCP的一种新的网络协议.它实现 ...
- 2018.11.5 Nescafe26 T1 小猫爬山
题目 题目描述 Freda 和 rainbow 饲养了 N 只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们 终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). Fre ...
- 如何查看连接到手机热点的ip地址
因为最近玩树莓派,需要手机做热点,然后用树莓派连接到这个热点上,苦于不知道树莓派被分配了什么样的ip地址,经过一番探索,我发现了两种办法, 安装一个 android terminal( 安卓命令行), ...
- window.onload和$(docunment).ready的区别
浏览器加载完DOM后,会通过javascript为DOM元素添加事件,在javascript中,通常使用window.onload()方法. 在jquery中,则使用$(document).ready ...
- wusir 面试题答案在老男孩的视频里
注意:你问答案在哪里?答案在视频里了,就是不给你写. 第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C+ ...
- 动态规划:最长上升子序列(二分算法 nlogn)
解题心得: 1.在数据量比较大的时候n^2会明显超时,所以可以使用nlogn 的算法,此算法少了双重循环,用的lower_bound(二分法). 2.lis中的数字并没有意义,仅仅是找到最小点lis[ ...
- 库函数的使用:sscanf的使用方法
先贴代码,可以看懂代码的直接看代码: /***************************************************** ** Name : sscanf.c ** Auth ...
- 后缀数组的使用心得——POJ2774 最长连续公共子串
对于这道题,将两个字符串直接合并成为一个字符串,分别记录连个字符串结束的位置. 首先,应用黑暗圣典的模板,我们可以顺利得到height,rank,sa三个数组. 之后直接扫描1-n所有的位置,选出来一 ...
- C#开发模式——dll多级引用的问题
C#解决方案里有两种引用方式,项目引用和dll物理文件引用. 一.项目引用 严格引用,项目文件需包含在解决方案里,好处是便于调试,可直接进入代码.缺点是耦合度太高(必须全部编译通过才能run起来),项 ...
- Java集合---List、Set、Iterator、Map简介
1.List集合 1.1概念 List继承自Collection接口.List是一种有序集合,List中的元素可以根据索引(顺序号:元素在集合中处于的位置信息)进行取得/删除/插入操作. 跟Set集合 ...