前言·

  这里分为三篇文章来写我是如何重新搭建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. 数仓建模—OneID

    今天是我在上海租房的小区被封的第三天,由于我的大意,没有屯吃的,外卖今天完全点不到了,中午的时候我找到了一包快过期的肉松饼,才补充了1000焦耳的能量.但是中午去做核酸的时候,我感觉走路有点不稳,我看 ...

  2. js 获取和设置css3 属性值的实现方法

    众多周知 CSS3 增加了很多属性,在读写的时候就没有原先那么方便了. 如:<div style="left:100px"></div> 只考虑行间样式的话 ...

  3. 让子弹飞,零成本让你的网站更快一点,boxopened http/3 (QUIC) 协议实战

    最近HTTP-over-QUIC 协议被正式命名为 HTTP/3,协议带来的最大改变是协议底层将采用UDP协议,而不再是TCP协议,这样的好处吗,就是更低时延,更好的拥塞控制,更精确的RTT时间,更高 ...

  4. Linux 0.11源码阅读笔记-文件IO流程

    文件IO流程 用户进程read.write在高速缓冲块上读写数据,高速缓冲块和块设备交换数据. 什么时机将磁盘块数据读到缓冲块? 什么时机将缓冲块数据刷到磁盘块? 函数调用关系 read/write( ...

  5. ecahrts实现动态刷新(隔几秒重新显示)

    代码: <script> var chartDom = document.getElementById('main3'); var myChart = echarts.init(chart ...

  6. java多线程的状态转换以及基本操作

    1. 新建线程 一个java程序从main()方法开始执行,然后按照既定的代码逻辑执行,看似没有其他线程参与,但实际上java程序天生就是一个多线程程序,包含了:(1)分发处理发送给给JVM信号的线程 ...

  7. 使用Socket实现HttpServer(二)

    使用Socket实现HttpServer(二) 前面我们使用 Socket 实现了一个简易的 HttpServer,接下来我们将对我们的服务器进行优化: 面向对象的封装 优化线程模型(引入多线程) R ...

  8. C# 将PDF转为Excel

    通常,PDF格式的文档能支持的编辑功能不如office文档多,针对PDF文档里面有表格数据的,如果想要编辑表格里面的数据,可以将该PDF文档转为Excel格式,然后编辑.本文,将以C#代码为例,介绍如 ...

  9. python---运算符和编码

    格式化输出 在输出数据时,会有用户需要输入的信息被输出,没办法预先知道,这就需要使用格式化输出.先在相应位置放置一个占位符,再把字符串里的占位符与外部的变量做个映射关系. name = input(& ...

  10. LC-349

    Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the ...