下载地址及版本说明

Redis 各版本下载地址: http://download.redis.io/releases/

版本说明:一般来说版本号第二位,偶数是稳定版本,奇数是在开发中的版本

本文基于Redis 版本为:3.2.12

理论依据文章为:

https://blog.csdn.net/sanri1993/article/details/101599701

https://blog.csdn.net/sanri1993/article/details/101620171

主从搭建

一主多从结构

结构

master 6379

slave 6380 -> 6379

slave 6381 -> 6379

搭建过程

  • 配置节点

master 6379 redis6379.conf

port 6379
protected-mode no
daemonize yes

slave 6380 redis6380.conf

port 6380
protected-mode no
daemonize yes
slaveof localhost 6379

slave 6381 redis6381.conf

port 6381
protected-mode no
daemonize yes
slaveof localhost 6379
  • 启动
./redis-server conf/redis6379.conf
./redis-server conf/redis6380.conf
./redis-server conf/redis6381.conf
  • 查看是否启动成功
# 先看进程是否启动
netstat -tlnp | grep -E "6379|6380|6381"
# 查看拓扑结构
127.0.0.1:6379> info Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6380,state=online,offset=10459,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=10459,lag=0

树状主从结构

结构

master 6379

slave 6380 -> 6379

slave 6381 -> 6380

搭建过程

和一主多从有变化的配置,其它环节一致

slave 6381 redis6381.conf

port 6381
protected-mode no
daemonize yes
slaveof localhost 6380

哨兵环境搭建

现切换成一主多从结构 ,在一主多从的情况下,搭建三个哨兵

结构

sentinel 26379 sentinel 26380 sentinel 26381

master 6379

slave 6380 -> 6379

slave 6381 -> 6379

搭建过程

  • 配置哨兵节点

sentinel 26379

port 26379
daemonize yes
sentinel monitor mymaster 127.0.0.1 6379 2

sentinel 26380

port 26380
daemonize yes
sentinel monitor mymaster 127.0.0.1 6379 2

sentinel 26381

port 26381
daemonize yes
sentinel monitor mymaster 127.0.0.1 6379 2
  • 启动哨兵
./redis-sentinel conf/sentinel26379.conf
./redis-sentinel conf/sentinel26380.conf
./redis-sentinel conf/sentinel26381.conf
  • 查看是否启动成功
# 查看进程是否启动成功
ps aux | grep sentinel # 关闭主节点,看是否会选举一台从节点成为主节点
127.0.0.1:6379> shutdown # 重启之前的主节点,一段时间后,查看是否成为 slave 节点

集群环境搭建

结构

cluster master ->cluster slave

master 6379 -> slave6389

master 6380 -> slave6390

master 6381 -> slave6391

搭建过程

  • 配置节点配置信息

master 6379

port 6379
protected-mode no
daemonize yes cluster-enabled yes
cluster-node-timeout 15000
# . 相对于命令运行路径,最好写绝对路径
cluster-config-file ./nodes-6379.conf

其它 master slave 只需要修改端口号即可,然后使用 ./redis-server <configfile> 启动

  • 建立集群通信
# 将集群的每一个节点建立通信
192.168.108.128:6379>cluster meet ip port # 查询集群节点
192.168.108.128:6379>cluster nodes
  • 映射数据槽

redis集群有16384个哈希槽,要把所有数据映射到16384槽,需要批量设置槽

# 查询集群状态
192.168.108.128:6381> cluster info
cluster_state:fail # 显示为 fail 是还没有映射槽,还不能提供服务
redis-cli -h 192.168.108.128 -p 6379 cluster addslots {0..5461}
redis-cli -h 192.168.108.128 -p 6380 cluster addslots {5462..10922}
redis-cli -h 192.168.108.128 -p 6381 cluster addslots {10923..16383}
  • 配置主从,在从节点上操作,复制哪一个 master
192.168.152.128:6389> cluster replicate 9b7b0c22f95eb01fb9935ad4b04d396c7f99e881
192.168.152.128:6390> cluster replicate 5351c088472467ae485ed519cea271efda646bfa
192.168.152.128:6391> cluster replicate e718f126278072e1e180c3e518d73e0bc877b3dc
  • 测试集群是否正常工作
# 登录上之后,执行不同的 set 操作,看能否跳转至其它节点执行命令
./redis-cli -c

SpringBoot 连接 redis 集群

  • 引入 spring-boot-starter-data-redis
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  • 配置节点信息
spring.redis.cluster.nodes=192.168.108.128:6379,192.168.108.128:6380,192.168.108.128:6381

一点小推广

创作不易,希望可以支持下我的开源软件,及我的小工具,欢迎来 gitee 点星,fork ,提 bug 。

Excel 通用导入导出,支持 Excel 公式

博客地址:https://blog.csdn.net/sanri1993/article/details/100601578

gitee:https://gitee.com/sanri/sanri-excel-poi

使用模板代码 ,从数据库生成代码 ,及一些项目中经常可以用到的小工具

博客地址:https://blog.csdn.net/sanri1993/article/details/98664034

gitee:https://gitee.com/sanri/sanri-tools-maven

Redis 主从,哨兵,集群实战的更多相关文章

  1. 【Redis学习专题】- Redis主从+哨兵集群部署

    集群版本: redis-4.0.14 集群节点: 节点角色 IP redis-master 10.100.8.21 redis-slave1 10.100.8.22 redis-slave2 10.1 ...

  2. Redis主从&哨兵集群搭建

    主从集群 在搭建主从集群前,我们先把Redis安装起来: #解压Redis压缩包 [root@master lf]# tar -zxvf redis-6.2.1.tar.gz -- #安装gcc [r ...

  3. 三千字介绍Redis主从+哨兵+集群

    一.Redis持久化策略 1.RDB 每隔几分钟或者一段时间会将redis内存中的数据全量的写入到一个文件中去. 优点: 因为他是每隔一段时间的全量备份,代表了每个时间段的数据.所以适合做冷备份. R ...

  4. redis主从、集群、哨兵

    redis的主从.集群.哨兵 参考: https://blog.csdn.net/robertohuang/article/details/70741575 https://blog.csdn.net ...

  5. redis的哨兵集群,redis-cluster

    #主从同步redis主从优先1.保证数据安全,主从机器两份数据一主多从2.读写分离,缓解主库压力主redis,可读可写slave身份,只读   缺点1.手动主从切换假如主库挂了,得手动切换master ...

  6. redis:哨兵集群配置

    最少配置1主2从3哨兵 一.引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一 ...

  7. 走进Redis:哨兵集群

    为什么需要哨兵 在 Redis 的主从库模式中,如果从库发生了故障,用户的操作是可以继续进行的,因为写操作是只在主库中进行的.那么,如果主库发生了故障,用户的操作将会收到影响.这时候可能会需要选择一个 ...

  8. Redis Sentinel哨兵集群

    Redis Sentinel(哨兵集群)是一种高可用的redis部署方案.在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用. 哨兵集 ...

  9. redis的哨兵集群,自动切换主从库

    Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端都没有实现主从切换的功能. 而 ...

  10. Redis高可用-主从,哨兵,集群

    主从复制 Master-Slave主从概念 同时运行多个redis服务端,其中一个作为主(master),其他的一个或多个作为从(slave),主从之间通过网络进行通讯,slave通过复制master ...

随机推荐

  1. 解决ionic 启动页面图片没有显示及启动页出现黑白屏

    1.ionic 正确打包完app, 并且按照正常的步骤配置config.xml文件之后 ,启动页面还是不能正常的显示出来,而是黑了一下之后,就进入首页了 原因很有可能就是你没有装cordova-plu ...

  2. Java网络编程之UDP

    Java网络编程之UDP 一.C/S架构中UDP网络通信流程 ①创建DatagramSocket与DatagramPacket对象 ②建立发送端,接收端 ③建立数据包 ④调用Socket的发送.接收方 ...

  3. Leetcode之回溯法专题-46. 全排列(Permutations)

    Leetcode之回溯法专题-46. 全排列(Permutations) 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3, ...

  4. 基于JRebel开发的MySQL Explain插件

    前言 我们在使用数据库时,为了使业务系统性能达到最优,往往都需要避免慢SQL查询,不能等到线上告警了再排查是否为慢SQL导致.在开发阶段,每个开发人员就应该针对自己写的SQL看是否可能为慢SQL,从而 ...

  5. Java NIO系列之[说在前面的话]

    在开始这个系列文章之前,先聊一些题外话,说说我为什么要写Java NIO这个系列技术文章(不看完会错失一个亿的),因为Java NIO并不像JVM,中间件源码那么有吸引力,但这个技术点是java的基础 ...

  6. 一个手写的Vue放大镜,复制即可使用

    一个手写的vue放大镜 组件使用less,请确保已安装loader 本组件为放大镜组件,传参列表为: width: 必传,设置放大镜的宽高(正方形),放大区域等同,放大倍数为2倍 picList:必传 ...

  7. 关于Springboot+thymeleaf +MybatisPlus 报错Error resolving template [index], template might not exist的问题解决

    这个问题困扰了我整整一上午,各种方式,什么返回路径 ,静态资源啊 什么的,能想到的都去搞了,可是问题还是解决不了!!!我查看了一下编译文件的[target]文件夹!发现了问题所在!根本就没有编译进去! ...

  8. (数据科学学习手札69)详解pandas中的map、apply、applymap、groupby、agg

    *从本篇开始所有文章的数据和代码都已上传至我的github仓库:https://github.com/CNFeffery/DataScienceStudyNotes 一.简介 pandas提供了很多方 ...

  9. JavaScript入门之AJAX:原生ajax

    背景 传统的Web应用允许用户端填写表单(form),当提交表单时就向网页服务器发送一个请求.服务器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因为在前后两个页面中的大部分H ...

  10. fiddler的安装于使用(一)安装fiddler

    Fiddler的简介 Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 .它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据.设置断点.调试web应 ...