https://www.jianshu.com/p/45ffd2a84143

内核配置

cat >> /etc/rc.local << EOF

echo never > /sys/kernel/mm/transparent_hugepage/enabled
EOF
cat >> /etc/sysctl.conf << EOF
vm.overcommit_memory = 1
EOF

静态解析

cat >> /etc/hosts << EOF

10.105.225.8    redis-master
10.154.146.25 redis-slave
EOF

优化

tcp-backlog 65536
timout 300
tcp-keepalive 300
maxclients 10000
maxmemory 2G
maxmemory-policy volatile-lru

配置复制

# master /etc/redis.conf

#daemonize no
daemonize yes #bind 127.0.0.1
bind 0.0.0.0 #protected-mode yes
protected-mode no #dir /var/lib/redis/
dir /opt/www/redis/ masterauth @sentinel
requirepass @sentinel
# slave /etc/redis.conf

#daemonize no
daemonize yes #bind 127.0.0.1
bind 0.0.0.0 #protected-mode yes
protected-mode no #dir /var/lib/redis/
dir /opt/www/redis/ # 从机多了slaveof配置,注意主从要匹配
slaveof redis-master 6379
masterauth @sentinel
requirepass @sentinel

启用服务

systemctl restart redis && systemctl enable redis

systemctl restart redis-sentinel && systemctl enable redis-sentinel

查看配置状态

#redis-cli -h redis-master -a @sentinel info replication
# Replication
role:master
connected_slaves:1
slave0:ip=10.154.146.25,port=6379,state=online,offset=29,lag=1
master_repl_offset:29
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:28 #redis-cli -h redis-slave -a @sentinel info replication
# Replication
role:slave
master_host:redis-master
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:15
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

配置sentinel

# 3台哨兵,2票选举

cat > /etc/redis-sentinel.conf << EOF
port 26379
protected-mode no
daemonize yes dir /tmp
sentinel monitor mymaster redis-master 6379 2
sentinel down-after-milliseconds mymaster 2000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 5000
sentinel auth-pass mymaster @sentinel logfile /var/log/redis/sentinel.log
EOF

cat > /etc/sentinel_26380.conf << EOF
port 26380
protected-mode no
daemonize yes dir /tmp
sentinel monitor mymaster redis-01-master 6379 2
sentinel down-after-milliseconds mymaster 2000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 5000
sentinel auth-pass mymaster @sentinel logfile /var/log/redis/sentinel_26380.log
EOF cat > /etc/sentinel_26381.conf << EOF
port 26381
protected-mode no
daemonize yes dir /tmp
sentinel monitor mymaster redis-02-master 6379 2
sentinel down-after-milliseconds mymaster 2000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 5000
sentinel auth-pass mymaster @sentinel logfile /var/log/redis/sentinel_26381.log
EOF cat > /etc/sentinel_26382.conf << EOF
port 26382
protected-mode no
daemonize yes dir /tmp
sentinel monitor mymaster redis-03-master 6379 2
sentinel down-after-milliseconds mymaster 2000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 5000
sentinel auth-pass mymaster @sentinel logfile /var/log/redis/sentinel_26382.log
EOF # /etc/rc.local
/usr/bin/redis-sentinel /etc/sentinel_26380.conf &
/usr/bin/redis-sentinel /etc/sentinel_26381.conf &
/usr/bin/redis-sentinel /etc/sentinel_26382.conf &

sentinel状态

#redis-cli -h redis-master -p 26379 -a @sentinel info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
master0:name=redis-01,status=ok,address=10.105.225.8:6379,slaves=1,sentinels=3 #redis-cli -h redis-slave -p 26379 -a @sentinel info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
master2:name=redis-01,status=ok,address=10.105.225.8:6379,slaves=1,sentinels=3

sentinel切换日志

sentinel日志
[20104] 28 Mar 17:29:54.042 # +sdown master mymaster 10.105.225.8 6379
[20104] 28 Mar 17:29:54.104 # +odown master mymaster 10.105.225.8 6379 #quorum 2/2
[20104] 28 Mar 17:29:54.104 # +new-epoch 1
[20104] 28 Mar 17:29:54.104 # +try-failover master mymaster 10.105.225.8 6379
[20104] 28 Mar 17:29:54.169 # +vote-for-leader 016236a44f1376e34b8e6696c1b7eb0d8ebc3e59 1
[20104] 28 Mar 17:29:54.169 # 10.154.146.25:26379 voted for b9d0dc3e20c5c138304419a17f572e56be61a3fd 1
[20104] 28 Mar 17:29:54.169 # 10.154.43.8:26379 voted for 27c052e9e9b3ad99edc6fe85f5566157e9865309 1
[20104] 28 Mar 17:29:54.169 # 10.154.162.125:26379 voted for b9d0dc3e20c5c138304419a17f572e56be61a3fd 1
[20104] 28 Mar 17:29:54.189 # 10.154.160.30:26379 voted for b9d0dc3e20c5c138304419a17f572e56be61a3fd 1
[20104] 28 Mar 17:29:54.195 # 10.105.93.170:26379 voted for 1823e7153adb3b302a6c05e2a79ce508217e5b9f 1
[20104] 28 Mar 17:30:04.361 # -failover-abort-not-elected master redis-01 10.105.225.8 6379
[20104] 28 Mar 17:30:04.416 # Next failover delay: I will not start a failover before Wed Mar 28 17:35:54 2018
[20104] 28 Mar 17:35:54.336 # +new-epoch 2
[20104] 28 Mar 17:35:54.341 # +vote-for-leader b9d0dc3e20c5c138304419a17f572e56be61a3fd 2
[20104] 28 Mar 17:35:54.341 # Next failover delay: I will not start a failover before Wed Mar 28 17:41:54 2018
[20104] 28 Mar 17:35:54.728 # +config-update-from sentinel 10.154.162.125:26379 10.154.162.125 26379 @ redis-01 10.105.225.8 6379
[20104] 28 Mar 17:35:54.728 # +switch-master redis-01 10.105.225.8 6379 10.154.146.25 6379
[20104] 28 Mar 17:35:54.728 * +slave slave 10.105.225.8:6379 10.105.225.8 6379 @ redis-01 10.154.146.25 6379
[20104] 28 Mar 17:36:24.754 # +sdown slave 10.105.225.8:6379 10.105.225.8 6379 @ redis-01 10.154.146.25 6379

redis复制集(sentinel)的更多相关文章

  1. Redis 复制、Sentinel的搭建和原理说明(转)

    Redis 复制.Sentinel的搭建和原理说明  转自:http://www.cnblogs.com/zhoujinyi/p/5570024.html. 背景: Redis-Sentinel是Re ...

  2. Redis 复制、Sentinel的搭建和原理说明

    背景: Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端) ...

  3. redis复制集

    应用场景:复制集作用的场景问题: 1.解决单点故障 2.读写分离 1.准备两台redis服务器 a) 一台做为注服务器,一台做为从服务器 b) 在从服务器中的redis.conf文件中添加 repli ...

  4. Redis高可用复制集群实现

    redis简单介绍 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库.Redis 与其他 key - value 缓存产品有以下三个特点: 支持数据的持久化,可以将 ...

  5. 02.Redis主从集群的Sentinel配置

    1.集群环境 1.Linux服务器列表 使用4台CentOS Linux服务器搭建环境,其IP地址如下: 192.168.110.100 192.168.110.101 192.168.110.102 ...

  6. Redis复制与可扩展集群搭建

    抄自:http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster 讨论了Redis的常用数据类型与存储机制,本文会讨论一 ...

  7. (转)Redis复制与可扩展集群搭建

    讨论了Redis的常用数据类型与存储机制,本文会讨论一下Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题. Redis复制流程概述 Redis的复制功能是完全建立在之前我们讨论过 ...

  8. Redis复制与可扩展集群搭建【转】

    本文会讨论一下Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题. Redis复制流程概述 Redis的复制功能是完全建立在之前我们讨论过的基于内存快照的持久化策略基础上的,也就是 ...

  9. Redis的集群方案之Sentinel(哨兵模式)(待实践)

    哨兵模式是主从切换的一种方案,但是可以借助此方案实现集群,达到高可用. 先收集教程,待实践. 参考: https://redis.io/topics/sentinel(官方文档) http://ife ...

随机推荐

  1. tornado 10 长轮询和 websocket

    tornado 10 长轮询和 websocket 一.长轮询 #在网页,我们经常扫码登录,那么问题来了,前端是如何知道用户在手机上扫码登录的呢 这里就需要用到长轮询 #长轮询 #客户端能够不断地向服 ...

  2. ubuntu 18.04 修改 固定ip

    Linux(ubuntu)下固定IP的方法   写在前面,问:为什么要固定ip.答:要知道固定IP的好处多多,随意搬动,固定共享地址,不怕断网等等 首先,我们要选取一个局域网内的IP,方法如下: 1. ...

  3. window 系统 cygwin swool 问题

    cygwin 终端乱码  端口占用 查看 tcp  端口: netstat -tno  或者 netstat -an | grep 端口 杀死进程号 : kill   进程号 --->  143 ...

  4. LeetCode268.缺失数字

    268.缺失数字 描述 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数. 示例 示例 1: 输入: [3,0,1] 输出: 2 示例 ...

  5. HDU - 3652 数位DP 套路题

    题意:统计能被13整除和含有13的数的个数 解法没法好说的..学了前面两道直接啪出来了 PS.HDU深夜日常维护,没法交题,拿网上的代码随便对拍一下,输出一致 #include<bits/std ...

  6. git 填坑之 git 暂存区忽略文件

    今天修改公司项目文件的时候,发现被修改的文件的始终不显示已经被修改. 本来是想要把 KWh 改成 kWh,然后执行 git status 后,没有文件修改记录: 开始分析究竟是因为什么导致的这样诡异的 ...

  7. 破解myBase试用到期

    请保持你的myBase7是关闭的 1.找到myBase7的安装目录(myBase.exe的目录): 2.右键编辑打开myBase.ini: 3.找到 App.UserLic.FirstUseOn,并在 ...

  8. Yii2 hasMany 关联后加条件

    当前模型类为活动表id,关联评论表的type_id,条件是评论表的type要等于2public function getComment(){ return $this->hasMany(Comm ...

  9. webstorm预览时把浏览器地址localhost改成IP

    可以通过 File --> Setting,搜索 deployment 点击 + 号 然后输入一个名称,选择:Local or mounted folder,点击 OK 接下来选择你的本地项目路 ...

  10. python从字符串内取两个符号之间的内容

    #取字符串中两个符号之间的东东 def txt_wrap_by(self,start_str, end, html): start = html.find(start_str) if start &g ...