前言·

  这里分为三篇文章来写我是如何重新搭建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. ajax解析json对象集合

    这个需求是我们做项目经常遇到的,当你想渲染表格的数据,你的数据在servlet中存在了arraylist中,你想把arraylist传到ajax的data中,这时候就需要用到ObjectMapper对 ...

  2. devicePixelRatio 那些事儿

    devicePixelRatio 那些事儿 设备像素比 window.devicePixelRatio 是设备上物理像素和设备独立像素的比例,即公式表示为:window.devicePixelRati ...

  3. 使用 Blueprint 要注意 render_template 函数

    此文章主要是为了记录在使用 Flask 的过程中遇到的问题.本章主要讨论 render_template 函数的问题. 使用 Flask 的同学都应该知道,项目中的 url 和视图函数是在字典里一一对 ...

  4. rabitmq 登录报错:User can only log in via localhost

    安装教程参考:https://blog.csdn.net/qq_43672652/article/details/107349063 修改了配置文件仍然报错,无法登录.解决办法:新建一个用户登录: 查 ...

  5. Android回到页面并刷新数据

    通过对Android Activity的生命周期的了解,需要在后退页面重写onResume()的方法. 建立自己更新数据的函数,并在onCreate()方法中调用. @Override protect ...

  6. mixin和composition api

    1. 这两个都是实现组件逻辑复用的法宝 2. composition api是vue3的,  composition api的出现就是解决mixins的不足之处的 一. mixin 回顾下mixin, ...

  7. setTimeout中第一个参数

    永远不要传递字符串作为setTimeout的第一个参数!!!记住第一个参数只允许函数,或者匿名函数!因为传递字符串有陷阱啊!!它就是披着羊皮的eval啊!!而且上下文会变成全局啊!! 第一个参数为可执 ...

  8. PostgreSQL执行计划:Bitmap scan VS index only scan

    之前了解过postgresql的Bitmap scan,只是粗略地了解到是通过标记数据页面来实现数据检索的,执行计划中的的Bitmap scan一些细节并不十分清楚.这里借助一个执行计划来分析bitm ...

  9. LC-26

    class Solution { public int removeDuplicates(int[] nums) { int slowIndex = 0, fastIndex = 1; if (num ...

  10. 微信小程序一些标签

    wxml标签   一.视图容器(View Container): 二.基础内容(Basic Content) 标签名 说明 标签名 说明 view 视图容器 icon  图标 scroll-view ...