前言·

  这里分为三篇文章来写我是如何重新搭建redis主从集群和哨兵集群的及原本服务器上有单redis如何通过升级脚本来实现redis集群。(redis结构:主-从(备)-从(备))

  至于为什么要搭建redis主从集群,最开始是单redis,把一些常用的数据缓存到redis中,避免直接查数据库,从而对数据库造成压力,查redis缓存也读写数据比数据库更快,因为一个是读写内存,一个是读写硬盘存储。

然后随着实际项目中,考虑到数据量的加大,高并发,有出现过redis连接失败,从而类似缓存雪崩。所以后期更改了架构,把redis集群,并应用自动容灾切换,避免redis宕机后直接报错。至于什么是缓存雪崩、缓存击穿、缓存穿透,请参考下图:

一、redis安装部署

  1.1 安装

  官网下载地址:https://redis.io/download,这里我们下载5.0.12,直接点击下载.

  或直接命令下载:wget http://download.redis.io/releases/redis-5.0.12.tar.gz

  然后进入解压文件目录,使用make命令对解压的redis文件进行编译,如下:

  cd /home/zmoon/redis-5.0.12

  make

  编译成功后,进入src文件夹执行make install 进行Redis安装

注:如出现/bin/sh: cc: command not found错误,是因为没有安装 gcc 环境,使用命令yum install gcc安装 gcc 环境即可。

  1.2 配置文件统一管理

  先找到redis-5.0.12目录下的redis.conf文件,修改redis.conf文件,下面是修改的相关参数:

  bind 0.0.0.0

port 6379

protected-mode no

logfile ./redis.log

daemonize yes

requirepass password&123

masterauth password&123

  首先看一下redis.conf 配置文件中的各个参数,详解如下:

  然后是新建个sentinel.conf文件

  修改sentinel.conf配置:

  port 26379
  protected-mode no
  daemonize yes
  logfile "/home/zmoon/redis-5.0.12/sentinel.log"
  sentinel deny-scripts-reconfig yes
  sentinel monitor mymaster 127.0.0.1 6379 2
  sentinel down-after-milliseconds mymaster 3000
  sentinel failover-timeout mymaster 18000
  sentinel parallel-syncs mymaster 1
  sentinel auth-pass mymaster password&123

  sentinel.conf详细配置如下图:

  配置文件改好后,我这边为了方便,写了个脚本来修改从服务器上跟主服务器配置不同的地方

  里面会有当前节点跟当前主节点,当前节点:redis部署的当前服务器IP,当前主节点:需要把3个redis 其中一个当为主redis的服务器IP。

  主从3台服务器的脚本执行完了会发现,从服务器上面的redis.conf会比主服务器的redis.conf多一行配置,如:

  replicaof 127.0.1.7 6379

  当配置文件已经修改完了后,就可以启动redis服务了。

  1.3 启动redis

  cd /home/zmoon/redis-5.0.12/bin

  ./redis-server /home/zmoon/redis-5.0.12/etc/redis.conf

  主从3台redis都启动好后,登陆redis 如图:

  输入密码:

  查看redis主从关系

  可以看到当前服务器的redis角色为master,下面有两个从68跟65,我们再到65上看信息:

  此时,可以看见,主-从-从架构已经搭建完成。

一、全新安装搭建redis主从集群的更多相关文章

  1. docker搭建redis主从集群和sentinel哨兵集群,springboot客户端连接

    花了两天搭建redis主从集群和sentinel哨兵集群,讲一下springboot客户端连接测试情况 redis主从集群 从网上查看说是有两种方式:一种是指定配置文件,一种是不指定配置文件 引用地址 ...

  2. 超详细,多图文介绍redis集群方式并搭建redis伪集群

    超详细,多图文介绍redis集群方式并搭建redis伪集群 超多图文,对新手友好度极好.敲命令的过程中,难免会敲错,但为了截好一张合适的图,一旦出现一点问题,为了好的演示效果,就要从头开始敲.且看且珍 ...

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

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

  4. 【精】搭建redis cluster集群,JedisCluster带密码访问【解决当中各种坑】!

    转: [精]搭建redis cluster集群,JedisCluster带密码访问[解决当中各种坑]! 2017年05月09日 00:13:18 冉椿林博客 阅读数:18208  版权声明:本文为博主 ...

  5. Docker 搭建 Redis Cluster 集群环境

    使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...

  6. Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  7. 基于Dokcer搭建Redis集群搭建(主从集群)

    最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...

  8. linux环境下redis安装(redis伪集群搭建)

    redis在linux环境下搭建 1.创建目录 [root@192 local]# mkdir /usr/local/redis 2.下载redis,并解压 [root@192 local]# wge ...

  9. redis —主从&&集群(CLUSTER)

    REDIS主从配置 为了节省资源,本实验在一台机器进行.即,在一台机器上启动两个端口,模拟两台机器. 机器准备: [root@adailinux ~]# cp /etc/redis.conf /etc ...

随机推荐

  1. vsftd及虚拟用户

    临时需要搭建一个ftp,突然忘记怎么搞了,重新整一下,以后备用 vsftd及虚拟用户 1.安装vsftpd yum install vsftpd 2.添加用户(用于虚拟用户映射) adduser se ...

  2. Python的数据基础库Numpy怎样对数组进行排序

    Numpy怎样对数组排序 Numpy给数组排序的三个方法: numpy.sort:返回排序后数组的拷贝 array.sort:原地排序数组而不是返回拷贝 numpy.argsort:间接排序,返回的是 ...

  3. PCB设计常见规则及基本原则

    一.PCB基础知识 1.全称:印制电路板或者印制线路板 2.分类 材质分类:硬板(Rigid PCB).软板FPC(Flexible PCB).软硬结合板(Rigid-Flex PCB).HDI板(含 ...

  4. css边距重叠的解决方案

    ** css防止边距重叠的方法 ** 今天整理了一下用css防止边距重叠的几种方法先假设一组dom结构 <div class="parent"> <div cla ...

  5. 通读Python官方文档之wsgiref(未完成)

    wsgirf-WSGI功能及参考实现 源码:Lib/wsgiref Web服务器网关接口(Web Server Gateway Interface, WSGI),是用Python写的一个服务器软件和w ...

  6. 前端网络安全——前端CSRF

    CSRF:Cross Site Request Forgy(跨站请求伪造) 用户打开另外一个网站,可以对本网站进行操作或攻击.容易产生传播蠕虫. CSRF攻击原理: 1.用户先登录A网站 2.A网站确 ...

  7. 【uniapp 开发】Date.parse Firefox返回Nan的解决办法

  8. Hadoop搭建高可用的HA集群

    一.工具准备 1.7台虚拟机(至少需要3台),本次搭建以7台为例,配好ip,关闭防火墙,修改主机名和IP的映射关系(/etc/hosts),关闭防火墙 2.安装JDK,配置环境变量 二.集群规划: 集 ...

  9. 自定义View的onDraw 函数不执行

    解决办法:    在自定义的View 的构造方法中添加一句话:   this.setWillNotDraw(false);解释:那么加这条语句的作用是什么?先看API:        If this ...

  10. 使用 IDEA 创建 SpringBoot 项目(详细介绍)+ 源码案例实现

    使用 IDEA 创建 SpringBoot 项目 一.SpringBoot 案例实现源码 二.SpringBoot 相关配置 1. 快速创建 SpringBoot 项目 1.1 新建项目 1.2 填写 ...