Redis主从复制、哨兵模式
1.部署主从
环境:主IP:10.0.0.15,端口6379;从IP:10.0.0.16,端口6379.
原理:基于RDB持久化的功能来实现主从复制的功能.
a.linux-redis1(10.0.0.15)
cd /usr/local/redis/
grep "^[a-Z]" redis.conf # 列出几个修改过的配置
bind 10.0.0.15
protected-mode no
port 6379
daemonize yes
loglevel notice
logfile /usr/local/redis/logs/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
dir /data/redis
b.linux-redis2(10.0.0.16)
cd /usr/local/redis/
grep "^[a-Z]" redis.conf # 其余与上面的配置保持一致
bind 10.0.0.16
slaveof 10.0.0.15 6379 # 启动脚本
cat /usr/lib/systemd/system/redis.service IP=`ifconfig eth0 | awk -F"[ ]+" 'NR==2{print $3}'`
[Unit]
Description=The redis-server Process Manager
After=network.target [Service]
ExecStart=/usr/local/redis/src/redis-server /usr/local/redis/redis.conf --daemonize no
ExecStop=/usr/local/redis/src/redis-cli -h $IP shutdown [Install]
WantedBy=multi-user.target systemctl daemon-reload
systemctl enable redis
systemctl start redis
c.测试
主redis上输入数据

从redis上获取数据

此时的从redis只能读取数据,不能写入,主redis宕机之后,也不能写入,手动切换:
主redis上输入shutdown,从redis上输入slaveof no one,就可以写入数据了;
此时如果有其他的从redis,则输入slaveof 10.0.0.16 6379即可更换主redis;
此时如果刚才宕掉的redis又恢复了,则还是输入slaveof 10.0.0.16 6379,由主变成从.
2.利用哨兵模式实现主从自动切换
cat sentinel.conf # 当启动模式之后,这个配置文件中会自动增加从redis的信息
port 26379
dir "/tmp"
sentinel myid b84f8aea247ad5f7ea48c6a4921d0cca5ffc915f
sentinel monitor mymaster 10.0.0.15 6379 1
sentinel down-after-milliseconds mymaster 10000
sentinel failover-timeout mymaster 18000 ./src/redis-sentinel sentinel.conf
# Sentinel ID is b84f8aea247ad5f7ea48c6a4921d0cca5ffc915f
# +monitor master mymaster 10.0.0.15 6379 quorum 1
* +slave slave 10.0.0.16:6379 10.0.0.16 6379 @ mymaster 10.0.0.15 6379
* +slave slave 10.0.0.17:6379 10.0.0.17 6379 @ mymaster 10.0.0.15 6379 # 配置文件中自动生成了这些内容
# Generated by CONFIG REWRITE
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 10.0.0.16 6379
sentinel known-slave mymaster 10.0.0.17 6379
sentinel current-epoch 0
在10.0.0.15上停掉主redis:redis-cli -h 10.0.0.15 shutdown
主redis宕了,其余redis开始进行选举,在经过选举之后,其中的一个从redis会变为主redis,通过日志或者配置文件都可以看出来,此时谁是master.
cat sentinel.conf
port 26379
dir "/tmp"
sentinel myid b84f8aea247ad5f7ea48c6a4921d0cca5ffc915f
sentinel monitor mymaster 10.0.0.17 6379 1
sentinel down-after-milliseconds mymaster 10000
sentinel failover-timeout mymaster 18000
# Generated by CONFIG REWRITE
sentinel config-epoch mymaster 1
sentinel leader-epoch mymaster 1
sentinel known-slave mymaster 10.0.0.15 6379
sentinel known-slave mymaster 10.0.0.16 6379
sentinel current-epoch 1 # 此时启动10.0.0.15上的redis,它也只能"俯首称臣"
convert-to-slave slave 10.0.0.15:6379 10.0.0.15 6379 @ mymaster 10.0.0.17 6379 # 在配置文件sentinel.conf中加上这三行比较合适
daemonize yes
protected-mode no
logfile "/var/log/sentinel.log"
Redis主从利用Keepalived自动切换:http://blog.51cto.com/tryingstuff/2093119
Redis主从复制、哨兵模式的更多相关文章
- 浅谈:redis的主从复制 + 哨兵模式
浅谈:redis的主从复制 + 哨兵模式 主从模式 在谈论redis的主从复制之前,我们先回想下mysql的主从搭建过程,第一步呢首先要在主库服务器中修改my.cnf,开启一下bin_log功能, ...
- Redis进阶:Redis的哨兵模式搭建
Redis进阶:Redis的哨兵模式搭建 哨兵机制介绍 单机版的Redis存在性能瓶颈,Redis通过提高主从复制实现读写分离,提高了了Redis的可用性,另一方便也能实现数据在多个Redis直接的备 ...
- Redis-Sentinel Redis的哨兵模式
Redis-Sentinel Redis的哨兵模式Redis Sentinel 模式简介Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案时, ...
- redis的哨兵模式
我是在一台服务器上安装了三个redis 一主两从 想安装gcc gcc-c++ make tcl lrzsz yum -y install gcc gcc-c++ make tcl lrzsz ...
- redis主从+redis的哨兵模式
三台机器分布 192.168.189.129 // master的角色 192.168.189.130 // slave1的角色 192.168.189.131 // salve2的角色 ...
- redis主从+哨兵模式(借鉴)
三台机器分布 192.168.189.129 // master的角色 192.168.189.130 // slave1的角色 192.168.189.131 // salve2的角色 ...
- redis主从复制,哨兵以及集群搭建部署
redis主从复制 1.redis支持多实例的功能,一台机器上,可以运行多个单个的redis数据库 环境准备,运行3个redis数据库,达到 1主 2从的配置 主库 6379.conf port 63 ...
- Redis sentinel 哨兵模式集群方案配置
第一个方案是创建 redis cluster,第二种方案就是用哨兵模式来进行主从替换以及故障恢复.兵模式集群方案配置 一.sentinel介绍 Sentinel作用: 1):Master状态检测 2) ...
- Redis sentinel 哨兵模式
一.sentinel介绍 Sentinel作用: 1):Master状态检测 2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Maste ...
- redis架构~哨兵模式
一 哨兵模式稳定版本 redis哨兵模式是redis自带的高可用框架,稳定版本为redis2.8以上二 哨兵模式建立 1 避免单点故障,建立启动多个哨兵进程 2 哨兵模式启动命令 redis-s ...
随机推荐
- rabbitmq之rpc
环境:windows或者Linux,python3.6,rabbitmq3.5要求: 可以对指定机器异步的执行多个命令 例子: >>:run "df -h" --hos ...
- 聊聊、SpringBoot 上传文件大小
#2.0#spring.servlet.multipart.max-file-size=10Mb#spring.servlet.multipart.max-request-size=10Mb #1.3 ...
- [问题解决]ps aux中command命令相同,如何找出自己要的进程号?
问题提出: 我们通过ps aux能够查看各个进程的状态,很多时候启动命令相同,我们没有办法判断,我们要查找的进程到底是那个? 我们该用什么方式来找出我们要操作的进程号呢? 解决步骤: 找出有可能的进程 ...
- WMware给centos6.8虚拟机添加硬盘
背景 用WMware运行系统经常遇见系统磁盘不够用的情况,通常解决这个问题有两种方式: 1) 给现有磁盘扩容: 2) 给虚拟机添加一块虚拟硬盘: 磁盘扩容我还没试验成功,这里我先把给虚拟机添加一块硬盘 ...
- ubuntu16.04 使用问题笔记
1.问题: 下列软件包有未满足的依赖关系: vim : 依赖: vim-common (= 2:7.4.826-1ubuntu1) 但是 2:7.4.1689-3ubuntu1 正要被安装 E: 无法 ...
- zoj3161 Damn Couples
不想打题面了,题面戳这里 这道题目的模型转换地有点猛.首先我们肯定需要让老板把那些不相邻的人的卡牌放在前面,这样他们就作废了.然后剩下的卡牌就都是相邻人之间的了.我们就可以把这个序列分成若干个联通块, ...
- 《R语言实战》读书笔记--学习张丹日志
从张丹的日志(http://blog.fens.me/rhadoop-r-basic/)中第九条对象看到R对象的几个总结: 1.内在属性 mode length 所有对象都有的属性 2.外部属性 at ...
- centos 搭建web平台
centos 查询是否安装apacherpm -qa httpd 出现类似 httpd--.el6.centos..x86_64 ,说明已安装 yum -y install httpd // 安 ...
- YV12 NV12区别
用videoCapture和IAMStreamConfig拿到的支持的格式列表.发现支持2中图像格式,YV12和NV12.具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪 YV ...
- 昨天用到的一个sql查询。可取处,用max
SELECT T_AssetInfos_ID, MAX(T_AssetConstruct_Name), MAX(T_AssetProperties_Name), SUM(CAST(PropertyVa ...