前言·

  这里分为三篇文章来写我是如何重新搭建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. MySQL怎么用命令修改字段名

    一.SQL MySQL怎么用命令修改字段名的 -- alter table 表名 change 旧属性 新属性 新的数据类型 ==>(可以不写) COMMENT '备注' ALTER TABLE ...

  2. 什么是arduino及.arduino分类

    关于什么是arduino没有什么可说的,想要接触arduino多多少少的都会对arduino有一定的理解,我认为,arduino应该算是一个连接硬件与软件的平台,通过他,你可以将你的想法以代码的形式呈 ...

  3. Python中对象、类型、元类之间的关系

    Python里的对象.类型和元类的关系很微妙也很有意思. 1989年圣诞节期间,上帝很无聊,于是创造了一个世界. 对象 在这个世界的运转有几条定律. 1.一切都是对象 对象(object)是这个世界的 ...

  4. ubantu14.04搜狗拼音安装

    1. 先卸载fcitx: sudo apt-get purge fcitx*2. 安装fcitx和libssh2-1: sudo apt-get install fcitx 和 sudo apt-ge ...

  5. SQList基础+ListView基本使用

    今日所学: SQList基础语法 SDList下载地址 SQLite Download Page SQList安装教程SQLite的安装与基本操作 - 极客开发者-博客 ListView用法 没遇到什 ...

  6. Virtual Function(虚函数)in c++

    Virtual Function(虚函数)in c++ 用法: virtual void log() { std::cout << "hello world!" < ...

  7. kafka快速入门到精通

    目录 1. 消息队列两种模式 1.1 消息队列作用 1.2 点对点模式(一对一,消费者主动拉取数据,消息收到后消息删除) 1.3 发布/订阅模式(一对多,消费数据之后不会删除消息) 1.4 kafka ...

  8. 循序渐进搞懂 TCP 三次握手核心

    前言 本文旨在通过形象的例子和实操,把无形的.虚拟的网络转为具体的.可视化的.带领网络小白一步步的掌握 TCP 三次握手核心知识点,为后续深入学习 TCP 协议打基础. 通俗版 如下图所示,小明(客户 ...

  9. Spring原始注解开发-02

    使用@Repository.@Service.@Controller注解配置,使其更加清晰属于哪一层,因为我是模拟的web层,所有没有使用@Controller注解,后面结合web开发会使用到 1.创 ...

  10. python数据类型与基础运算

    注释:了解其他数据类型补充 基础数据类型补充 可以回一下之前的数据类型: 整型,浮点型,字串符和列表. 一.字典(dict) #字典:可以精准的储存数据 是用大括号表示'{}' '字典和数据数据列表差 ...