部署 redis 哨兵模式高可用集群

环境

master: 192.168.1.224
slave1: 192.168.1.225
slave2: 192.168.1.226

修改系统参数

#somaxconn
echo 1024 > /proc/sys/net/core/somaxconn
#overcommit_memory
vim /etc/sysctl.conf
vm.overcommit_memory = 1

安装redis 5

yum install -y gcc gcc-c++
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar xzf redis-5.0.3.tar.gz
mv redis-5.0.3 redis
cd redis
make MALLOC=libc

master 配置文件 redis.conf 修改以下参数

#绑定IP
bind 192.168.1.224
#后台运行
daemonize yes
#设置密码
requirepass "redisPASSWORD"
#日志文件
logfile "/tmp/redis.log"
#最大使用内存字节数
maxmemory 536870912
#删除策略
maxmemory-policy allkeys-lru
#主从认证密码
masterauth "redisPASSWORD"

slave1 配置文件 redis.conf 修改以下参数

#绑定IP
bind 192.168.1.224
#后台运行
daemonize yes
#设置密码
requirepass "redisPASSWORD"
#日志文件
logfile "/tmp/redis.log"
#最大使用内存字节数
maxmemory 536870912
#删除策略
maxmemory-policy allkeys-lru
#主从认证密码
masterauth "redisPASSWORD"
#设置主节点
replicaof 192.168.1.224 6379

slave2 配置文件 redis.conf 修改以下参数

#绑定IP
bind 192.168.1.224
#后台运行
daemonize yes
#设置密码
requirepass "redisPASSWORD"
#日志文件
logfile "/tmp/redis.log"
#最大使用内存字节数
maxmemory 536870912
#删除策略
maxmemory-policy allkeys-lru
#主从认证密码
masterauth "redisPASSWORD"
#设置主节点
replicaof 192.168.1.224 6379

sentinel 配置文件 sentinel.conf,3个节点一样

port 26379
daemonize yes
logfile "/tmp/sentinel.log"
sentinel monitor mymaster 192.168.1.224 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 60000
sentinel parallel-syncs mymaster 1
sentinel auth-pass mymaster redisPASSWORD

配置 redis 启动、停止脚步 redis.sh

#!/bin/bash
case $1 in
    "start")
        if(ps -ef | grep redis-server | grep -v grep > /dev/null); then
            echo "Redis is running!"
        else
            src/redis-server redis.conf
        fi
    ;;
    "stop")
        if(ps -ef | grep redis-server | grep -v grep > /dev/null); then
            kill -9 `ps -ef | grep redis-server | grep -v grep | awk ‘{print $2}‘`
        else
            echo "Redis is not running!"
        fi
    ;;
    "restart")
        if(ps -ef | grep redis-server | grep -v grep > /dev/null); then
            kill -9 `ps -ef | grep redis-server | grep -v grep | awk ‘{print $2}‘`
            src/redis-server redis.conf
        else
            echo "Redis is not running!"
            src/redis-server redis.conf
        fi
    ;;
    *)
        echo "Input Error! Example: sh redis.sh start | stop | restart"
    ;;
esac

配置 sentinel 启动、停止脚步 sentinel.sh

#!/bin/bash
case $1 in
    "start")
        if(ps -ef | grep redis-sentinel | grep -v grep > /dev/null); then
            echo "Redis sentinel is running!"
        else
            src/redis-sentinel sentinel.conf
        fi
    ;;
    "stop")
        if(ps -ef | grep redis-sentinel | grep -v grep > /dev/null); then
            kill -9 `ps -ef | grep redis-sentinel | grep -v grep | awk ‘{print $2}‘`
        else
            echo "Redis sentinel is not running!"
        fi
    ;;
    "restart")
        if(ps -ef | grep redis-sentinel | grep -v grep > /dev/null); then
            kill -9 `ps -ef | grep redis-sentinel | grep -v grep | awk ‘{print $2}‘`
            src/redis-sentinel sentinel.conf
        else
            echo "Redis sentinel is not running!"
            src/redis-sentinel sentinel.conf
        fi
    ;;
    *)
        echo "Input Error! Example: sh redis.sh start | stop | restart"
    ;;
esac

启动redis实例

sh redis.sh start

启动sentinel实例

sh sentinel.sh start

简单测试

set key1 value1
get key1

检查集群状态

info

测试 spring boot 连接 redis-sentinel,添加以下配置

redis:
    database: 0
    sentinel:
      master: mymaster
      nodes: 192.168.1.224:26379,192.168.1.225:26379,192.168.1.226:26379
    password: redisPASSWORD

原文地址:https://blog.51cto.com/linux10000/2354662

时间: 2024-10-09 16:39:25

部署 redis 哨兵模式高可用集群的相关文章

[转帖]Breeze部署kubernetes1.13.2高可用集群

Breeze部署kubernetes1.13.2高可用集群 2019年07月23日 10:51:41 willblog 阅读数 673 标签: kubernetes 更多 个人分类: kubernetes https://blog.csdn.net/networken/article/details/86550735 所知道的太少了.. 不过简单试了下 不是特别好用 国内公司做的系统.. 也可能跟我的虚拟机兼容性有关系.. breeze简介 项目地址:https://github.com/wis

KeepAlived双主模式高可用集群

一.keepalived简介 keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测:通过共用的虚拟IP地址对外提供服务:每个热备组内同一时刻只有一台主服务器提供服务,其他服务器处于冗余状态,若当前在线的服务器宕机,其虚拟IP地址将会被其他服务器接替(优先级决定接替顺序),实现高可用为后端主机提供服务.   二.keepalived组件 Keepalived组件介绍 core:ke

部署Memcached+magent+keepalived高可用集群

Memcached+magent+keepalived高可用集群 magent是一款开源的代理服务软件,我们可以通过他来实现缓存数据的同步,当然这里说的同步不是说memcached之间就能互相通讯了, 而magent可以同时连接多个memcached节点, 通过magent绑定的VIP从客户端登录memcached写入数据,其他节点的memcached数据也会同步.? 案例环境 主机名称 IP 主要软件 memcached主 192.168.200.128 Magent.memcached.li

部署kubernetes1.8.3高可用集群

Kubernetes作为容器应用的管理平台,通过对pod的运行状态进行监控,并且根据主机或容器失效的状态将新的pod调度到其他node上,实现了应用层的高可用. 针对kubernetes集群,高可用性还包含以下两个层面的考虑: etcd存储的高可用 master节点的高可用 在开始之前,先贴一下架构图: etcd作为kubernetes的中心数据库,必须保证其不是单点.不过etcd集群的部署很简单,这里就不细说了,之前写过一键部署脚本,有兴趣的同学可以往前翻. 在k8s全面容器化加上各种验证机制

配置redis主从复制、高可用集群

一.安装redis首先下载redis安装包 [[email protected] yasuobao]# pwd /root/yasuobao [[email protected] yasuobao]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz 解压[[email protected] yasuobao]# tar -zxvf redis-5.0.5.tar.gz下载gcc.c[[email protected] yasuo

Heatbeat高可用集群

网络规划 主机名 接口 Ip 用途 MASTER node1.xmfb.com Eth0 172.16.4.100 提供高可用服务节点 BACKUP node2.xmfb.com Eth0 172.16.4.101 备用节点,随时准备接替主节点 NFS NFS Eth0 172.16.4.200 提供共享存储 VIP Eth0:0 172.16.4.1 虚拟ip 配置中所有系统均使用centos6.6 64位 配置HA集群的前提: (1)节点间时间必须同步:使用ntp协议实现: [[email 

(六) Docker 部署 Redis 高可用集群 (sentinel 哨兵模式)

参考并感谢 官方文档 https://hub.docker.com/_/redis GitHub https://github.com/antirez/redis happyJared https://blog.csdn.net/qq_28804275/article/details/80938659 下载redis镜像(不带tag标签则表示下载latest版本) docker pull redis 从github 下载最新的redis.conf,注意重要参数 # 端口 port 6379 #

部署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

Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别

谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. 复制(Replication):则是负责让一个Redis服务器可以配备多个备份的服务器. Redis正是利用这两个功能来保证Redis的高可用. 哨兵(sentinal) 哨兵是Redis集群架构中非常重要的一个组件,哨兵的出现主要是解决了主从复制出现故障时需要人为干预的问题. 1.Redis哨兵