设置内核参数:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo > /proc/sys/vm/overcommit_memory
echo > /proc/sys/net/core/somaxconn 、下载安装包redis-3.2..tar.gz # cd /usr/local/src
# wget http://download.redis.io/releases/redis-3.2.11.tar.gz 、解压及安装 [root@node1 src]# tar zxf redis-3.2..tar.gz
[root@node1 src]# cd redis-3.2./src/
[root@node1 redis-3.2.]# make PREFIX=/usr/local/redis3 install #指定安装路径 [root@node1 src]# mkdir /etc/redis
[root@node1 src]# cp ../redis.conf /etc/redis/redis_6379.conf # 设置启动脚本
[root@node1 redis-3.2.]# vim /etc/init.d/redis3
#!/bin/sh
# chkconfig:
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem. REDISPORT=
EXEC=/usr/local/redis3/bin/redis-server
CLIEXEC=/usr/local/redis3/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/redis_${REDISPORT}.conf" usage(){
echo "usage: $0 [start|stop|status|restart]"
} redis_start(){
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
} redis_stop(){
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -h 10.11.0.210 -p $REDISPORT -a redispass shutdown # 需要修改为各自主机的内网IP地址
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep
done
echo "Redis stopped"
fi
} redis_restart(){
redis_stop
sleep
redis_start
}
redis_status(){
ps -ef|grep redis|grep -v grep|grep -v status
} main(){
case "$1" in
start)
redis_start;;
stop)
redis_stop;;
status)
redis_status;;
restart)
redis_restart;;
*)
usage;
esac
} main $ 、修改redis配置
master redis_6379.conf配置:
[root@node1 redis-3.2.]# egrep -v '^$|^#' /etc/redis/redis_6379.conf
# 绑定的地址
bind 0.0.0.0
# 关闭保护模式
protected-mode no
port
daemonize yes
pidfile "/var/run/redis_6379.pid"
logfile "/var/log/redis/redis.log"
# 默认为yes,设置为no为主从复制
slave-read-only no
# redis密码
requirepass "redispass"
# 从服务器配置连接主服务器的密码,都需要配置,最好主从redis密码一样
masterauth "redispass" slave01 redis_6379.conf配置:
[root@node02 redis-3.2.]# egrep -v '^$|^#' /etc/redis/redis_6379.conf
bind 0.0.0.0
protected-mode no
port
daemonize yes
pidfile "/var/run/redis_6379.pid"
dir "/usr/local/src/redis-3.2.11"
slave-read-only no
requirepass "redispass"
masterauth "redispass"
slaveof 10.11.0.210 slave01 redis_6379.conf配置:
[root@node5 ~]# egrep -v '^$|^#' /etc/redis/redis_6379.conf
bind 0.0.0.0
protected-mode no
port
daemonize yes
pidfile "/var/run/redis_6379.pid"
dir "/usr/local/src/redis-3.2.11"
slave-read-only no
slave-priority
requirepass "redispass"
slaveof 10.11.0.210
masterauth "redispass" 、修改sentinel.conf文件 # 三台都一致,直接清除原来的配置,变更为如下内容即可: # vim sentinel.conf daemonize yes
logfile /var/log/sentine.log
protected-mode no
port
dir /tmp
sentinel monitor mymaster 10.11.0.210
sentinel down-after-milliseconds mymaster
sentinel parallel-syncs mymaster
sentinel failover-timeout mymaster
sentinel auth-pass mymaster redispass 配置注释:
#保护模式
protected-mode no #端口
port #守护进程
daemonize yes
#设置日志文件路径
logfile /var/log/sentine.log
#工作路径,不用改
dir /tmp # 哨兵监控这个master,在至少quorum个哨兵实例都认为master down后把master标记为odown
# (objective down客观down;相对应的存在sdown,subjective down,主观down)状态。
# slaves是自动发现,不用指定slaves。
sentinel monitor mymaster 10.11.0.210 # master或slave多长时间(默认30秒)不能使用后标记为s_down状态。
sentinel down-after-milliseconds mymaster #选项指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步, 这个数字越小, 完成故障转移所需的时间就越长。
sentinel parallel-syncs mymaster #若sentinel在该配置值内未能完成failover操作(即故障时master/slave自动切换),则认为本次failover失败。
sentinel failover-timeout mymaster #设置master和slaves的密码
sentinel auth-pass mymaster redispass 、三台机器都启动哨兵sentinel程序
[root@node1 redis-3.2.]# src/redis-sentinel sentinel.conf # 测试
.关闭主服务器可以自动将另外的slave其中一台提升为master,关闭另外的一台slave,master也可以正常运行
.将原来的master启动,此时会变成slave 查看主从复制信息:
[root@node1 redis-3.2.]# redis-cli -a redispass info replication
# Replication
role:master
connected_slaves:
slave0:ip=10.11.0.215,port=,state=online,offset=,lag=
slave1:ip=10.11.0.212,port=,state=online,offset=,lag=
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen: # 关闭redis服务命令
[root@node1 redis-3.2.]# redis-cli -a redispass shutdown 观察日志:
# tail -f /var/log/sentine.log

redis-3.2.11哨兵模式的配置的更多相关文章

  1. Redis高可用之哨兵模式Sentinel配置与启动(五)

    0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...

  2. Redis 高可用之哨兵模式

    参考   : https://mp.weixin.qq.com/s/Z-PyNgiqYrm0ZYg0r6MVeQ 一.redis高可用解决方案 redis主从 优点:1.高可靠性,主从实时备份,有效解 ...

  3. Redis实战——redis主从备份和哨兵模式实践

    借鉴:http://redis.majunwei.com/topics/sentinel.html     https://blog.csdn.net/u011784767/article/detai ...

  4. redis 安装 主从同步 哨兵模式

    一.redis 的安装1.先将安装包放到linux的一个文件夹下面 2.解压压缩包如图所示 3.解压后进入解压文件 4.安装: make 出现it.s a good idea to run 'make ...

  5. Redis哨兵模式的配置

    绪论 现有三台设备,192.168.137.11.192.168.137.12和192.168.137.13,要求在三台设备上实现redis哨兵模式,其中192.168.137.11为master,其 ...

  6. redis集群之哨兵模式【原】

    redis集群之哨兵(sentinel)模式 哨兵模式理想状态 需要>=3个redis服务,>=3个redis哨兵,每个redis服务搭配一个哨兵. 本例以3个redis服务为例: 一开始 ...

  7. redis集群sentinel哨兵模式的搭建与实际应用

    参考资料:https://blog.csdn.net/men_wen/article/details/72724406 之前环境使用的keepalived+redis vip集群模式,现在我们服务切换 ...

  8. Redis集群--Redis集群之哨兵模式

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 搭建R ...

  9. redis的主从复制和哨兵模式

    Redis主从复制是什么? 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 Redis主从复制 ...

随机推荐

  1. Golang入门教程(十七)Linux/Windows下快速搭建和配置NSQ

    前言 NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在GitHub,其当前最新版本是0.3.1版.NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消 ...

  2. Web 学习笔记(一)百度统计

    一.百度统计是什么? 百度统计是百度推出的一款免费的专业网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么,有了这些信息,可以帮助用户改善访客在用户的网站上的使用体验,不 ...

  3. 细说shiro之六:session管理

    官网:https://shiro.apache.org/ 我们先来看一下shiro中关于Session和Session Manager的类图. 如上图所示,shiro自己定义了一个新的Session接 ...

  4. 【转载】详解KMP算法

    网址:https://www.cnblogs.com/yjiyjige/p/3263858.html

  5. Django之CRM项目Day6-公私户转换问题解决 班主任功能

    1.解决公户转私户的问题 数据库中加锁: ​ begin; 开始事务 ​ select * from user where id=1 for update; 加锁 ​ commit; 结束事务 dja ...

  6. 第27月第18天 epoll lt et

    1. While the usage of epoll when employed as a level-triggered interface does have the same semantic ...

  7. visual studio code运行时报错,无法将“cnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称,Cannot find module 'webpack'

    前言 因公司技术需求,这段时间成功进入了Vue 2.0 的坑,刚用起Visual Studio Code,却发现问题很多,发现一个错误:cnpm : 无法将“cnpm”项识别为 cmdlet.函数.脚 ...

  8. python判断小数示例&写入文件内容示例

    #需求分析: #1.判断小数点个数是否为1 #2.按照小数点分隔,取到小数点左边和右边的值 #3.判断正小数,小数点左边为整数,小数点右边为整数 #4.判断负小数,小数点左边以负号开头,并且只有一个负 ...

  9. Windows jdk安装以及版本切换

    Windows jdk版本切换 一.安装 1.下载 官网: Java SE Development Kit 8 Downloads Java SE 7 Archive Downloads 1.7之前的 ...

  10. LOJ #2026「JLOI / SHOI2016」成绩比较

    很好的锻炼推柿子能力的题目 LOJ #2026 题意 有$n$个人$ m$门学科,第$ i$门的分数为不大于$U_i$的一个正整数 定义A「打爆」B当且仅当A的每门学科的分数都不低于B的该门学科的分数 ...