redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式

这篇具有很好参考价值的文章主要介绍了redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:
redis部署集群常见的一般有三种模式:主从模式,Sentinel(哨兵模式),Redis Cluster(高可用Cluster集群),根据不同的需求可自定义选择部署方式。

Redis 主从模式(Replication)
优点:
数据备份:主节点的数据会复制到从节点,提供了数据冗余和一定程度的故障恢复能力。
读写分离:可以将读操作分散到从节点上执行,减轻主节点的压力,提高系统的读取性能。
扩容:通过添加从节点可扩展只读操作的能力。
缺点:
无自动故障转移:当主节点发生故障时,需要人工介入进行故障切换,并更新客户端指向新的主节点。
写性能瓶颈:所有写操作必须在主节点完成,因此主节点成为系统写入的瓶颈。
数据同步延迟:主从之间存在一定的数据同步延迟,可能导致短时间内从节点数据不一致。

Sentinel(哨兵)模式
优点:
高可用性:Sentinel 系统能够自动检测主节点是否下线,并自动完成故障转移,选举新的主节点。
监控与通知:Sentinel 可以持续监控Redis服务器的状态并发送通知。
配置中心:客户端可以通过连接Sentinel来获取当前主节点的信息,无需硬编码主节点地址。
缺点:
复杂性增加:相较于主从模式,增加了Sentinel集群的部署、管理和维护成本。
网络问题敏感:由于依赖于Sentinel之间的通信,网络问题可能会影响故障转移的正确性和效率。
资源消耗:每个Sentinel实例都需要占用一定的系统资源。

Redis Cluster(集群模式)
优点:
分布式存储:数据分布在多个节点上,支持水平扩展,提供更大的存储容量和更高的吞吐量。
自动分片:通过哈希槽分区实现数据的自动分片和负载均衡。
自动故障转移:支持节点间自动故障转移和数据迁移,提高了整个系统的可用性。
缺点:
数据迁移开销:在添加或删除节点时,可能会触发大规模的数据迁移,影响集群性能。
客户端兼容性要求:部分操作如跨slot键操作、批量操作等,在Cluster模式下受到限制,客户端需支持Cluster特性才能正常使用。
更复杂的运维:相对于单机和主从模式,集群模式对运维人员的技术要求更高,且集群配置相对复杂。

主从模式适合简单场景下的数据备份和读写分离需求,但不适合需要自动故障转移和高度扩展的应用。
哨兵模式为了解决主从模式中自动故障转移的问题而设计,适用于对高可用性有较高要求的场景。
集群模式则针对大规模数据处理和高并发场景,提供了良好的水平扩展能力和自动化管理功能。

演示版本: 此教程不记录redis的安装过程
系统:anolis8.4虚拟机(阿里的龙蜥系统,可以看成相当于centos8系统)
redis:7.0.14

开始部署: 以下演示都在同一台机器,实际的生产环境还是建议配置到多台机器中
------------------------------我是昏割线------------------------------主从模式:
可以部署最简单的一主一从,也可以部署一主多从,下面以一主一从为例,主端口6379,从端口6380。
准备好一个安装好的redis,因为我是安装好redis后,只拷贝了需要的目录与文件,所以只有bin和etc两个目录,同时创建好存放数据的文件夹,以及日志文件夹,日志看自己需求需不需要配置,etc下就是redis的配置文件。
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群

redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群

配置主节点redis_6379.conf配置文件:
支持后台运行:

daemonize yes

日志路径:看自己需求,也可以不配置

logfile "/home/l/kxm/serv/redis_PS/redis/log"

指定数据存放位置:默认配置是"./",集群模式下必须指定路径,不然容易丢失数据

dir /home/l/kxm/serv/redis_PS/redis/data_6379

配置从节点redis_6380.conf配置文件:
复制主配置文件:

cp redis_6379.conf /home/l/kxm/serv/redis_PS/redis/etc/redis_6380.conf

配置replicaof节点:从配置要比主配置多一个replicaof节点配置,用于绑定主节点。
replicaof 主节点ip 主节点redis端口,例:

replicaof localhost 6379

这里特别说明一下,因为我是做演示,主从都配置在同一台机器上,最开始ip写的是指定ip,比如192.168.xxx.xxx这种,这样行不通,从节点一直连不上主节点,后面发现写成localhost或者127.0.0.1是没问题的。

批量修改6379关键字:因为是复制的6379的配置,把从节点配置中所有6379都改成6380

vim redis_6380.conf
:%s/6379/6380/g

到这里配置完成,启动两个redis:我的目录比较长,其实就是redis-server redis.conf命令

/home/l/kxm/serv/redis_PS/redis/bin/redis-server /home/l/kxm/serv/redis_PS/redis/etc/redis_6379.conf
/home/l/kxm/serv/redis_PS/redis/bin/redis-server /home/l/kxm/serv/redis_PS/redis/etc/redis_6380.conf

查询所有启动的redis:

ps -ef|grep redis

正常运行:
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
分别进入主从节点redis:

redis-cli -p 6379
redis-cli -p 6380

进入后验证:

info Replication

主节点:role:master,代表主节点;connected_slaves:1,已连接一个从节点;
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
从节点:role:slave,代表从节点;master_link_status:up,代表主节点可用,如果是down,代表不可用,可能原因:网络问题,主节点下线,replicaof配置错误,密码验证失败;
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
我这里没有配置密码,需要密码的自行配置requirepass选项:
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
在主节点中,添加数据:

set a 1

在从节点中,获取数据:能获取到值为1,那就部署完了。

get a

注意:
1.主节点可读可写,从节点只读。
2.如果把从节点的数据删除,重启从节点后,会自动复制主节点的数据。
3.如果把主节点数据删除,从节点数据同样会删除。
4.如果主节点挂掉,需要手动重新配置主节点。

------------------------------我是昏割线------------------------------哨兵模式:
哨兵模式也是遵从主从模式,但是哨兵模式最少必须要配置三个节点,也就是1主2从,可以先按照上面主从模式的方法先配置好三个节点并启动redis.
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
相比于主从模式,哨兵模式下多了个redis-sentinel
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群

节点配置好后,现在开始配置哨兵
在etc配置目录下创建sentinel_26379.conf文件,这就是哨兵的配置文件,并在文件中填写以下配置:

# 端口
port 26379

# 后台运行
daemonize yes

# 进程文件:程序启动后会自动把进程文件写进run目录中
pidfile "/home/l/kxm/serv/redis_sentinel/redis/run/sentinel_26379.pid"

# 日志文件
logfile "/home/l/kxm/serv/redis_sentinel/redis/log/sentinel_26379.log"

# 数据目录
dir "/home/l/kxm/serv/redis_sentinel/redis/data_6379"

# 如果设置了密码
# sentinel auth-pass mymaster <password>

# 客观下线的判断节点数:这里注意,如果是部署在同一台机器中,这里只能写指定ip或者127.0.0.1,不能写localhost
sentinel monitor mymaster 127.0.0.1 6379 2

# 主观下线的等待时间
sentinel down-after-milliseconds mymaster 30000

# 限制从节点向新主节点发起复制并发数
sentinel parallel-syncs mymaster 1

# 故障转移超时时间
sentinel failover-timeout mymaster 180000

26379配置好后,复制出26380和26381,并把文件中26379关键字改成对应文件的关键字,到此哨兵配置完成。

分别启动哨兵:其实就是redis-sentinel sentinel.conf命令

/home/l/kxm/serv/redis_sentinel/redis/bin/redis-sentinel /home/l/kxm/serv/redis_sentinel/redis/etc/sentinel_26379.conf
/home/l/kxm/serv/redis_sentinel/redis/bin/redis-sentinel /home/l/kxm/serv/redis_sentinel/redis/etc/sentinel_26380.conf
/home/l/kxm/serv/redis_sentinel/redis/bin/redis-sentinel /home/l/kxm/serv/redis_sentinel/redis/etc/sentinel_26381.conf

验证:

ps -ef|grep redis

redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群

redis-cli -p 6379 info Replication

redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群

redis-cli -p 26379 sentinel master mymaster

redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
成功启动后,配置文件会有改变:
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
注意:
1.主节点可读可写,从节点只读,这跟主从模式是一样的。
2.如果某个从节点挂掉,其他的主从结构依旧可正常运行,如果所有从节点挂掉,主节点依旧可正常运行,等从节点恢复后,会自动复制主节点数据。
3.如果主节点挂掉,哨兵会在从节点中自动选择一个作为主节点,如果之前的主节点恢复,之前的主节点会变成新的从节点,哨兵并不会恢复之前的主节点。
4.相比于主从模式,哨兵模式更智能,但是在实际的生产环境中,包括主从模式也一样,如果主节点挂掉,其实是有概率丢失数据的,虽然哨兵模式会自动更换节点,但这是有一个过程的,并不是一瞬间完成

------------------------------我是昏割线------------------------------高可用Cluster集群模式:
严格来说Cluster集群才是真正的集群,Cluster集群模式至少要部署两台机器才能叫做高可用,而且从节点不能与主节点在同一台机器,这里演示还是在一台机器上演示。
Cluster集群模式最少要配置6个节点,最少要三主三从。
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
配置redis_6381.conf:
后台运行:

daemonize yes

日志:

logfile "/home/l/kxm/serv/redis_cluster/redis/log/redis-6381.log"

数据目录:

dir /home/l/kxm/serv/redis_cluster/redis/data_6381

启动集群模式:redis新版本中自带cluster-enabled集群配置,放开注释就行

cluster-enabled yes
cluster-config-file nodes-6381.conf
cluster-node-timeout 15000

注意,Cluster集群模式不需要像主从模式和哨兵模式那样配置replicaof,后面启动集群时会自己创建主从关系。

复制其他五个节点的配置:复制完成后,记得把这些配置中的6381关键字改成对应文件的关键字

cp redis_6381.conf redis_6382.conf
cp redis_6381.conf redis_6383.conf
cp redis_6381.conf redis_6384.conf
cp redis_6381.conf redis_6385.conf
cp redis_6381.conf redis_6386.conf

先启动redis:还是redis-server redis.conf命令

/home/l/kxm/serv/redis_cluster/redis/bin/redis-server /home/l/kxm/serv/redis_cluster/redis/etc/redis_6381.conf
/home/l/kxm/serv/redis_cluster/redis/bin/redis-server /home/l/kxm/serv/redis_cluster/redis/etc/redis_6382.conf
/home/l/kxm/serv/redis_cluster/redis/bin/redis-server /home/l/kxm/serv/redis_cluster/redis/etc/redis_6383.conf
/home/l/kxm/serv/redis_cluster/redis/bin/redis-server /home/l/kxm/serv/redis_cluster/redis/etc/redis_6384.conf
/home/l/kxm/serv/redis_cluster/redis/bin/redis-server /home/l/kxm/serv/redis_cluster/redis/etc/redis_6385.conf
/home/l/kxm/serv/redis_cluster/redis/bin/redis-server /home/l/kxm/serv/redis_cluster/redis/etc/redis_6386.conf

创建集群:
此命令会根据ip地址的排序决定谁是主节点,谁是从节点,默认前面是主节点,后面是从节点,前面三个是主节点,后面三个是从节点。
注意–cluster-replicas 1配置,意思是每个主节点有多少个从节点,三主三从就是1,每个主节点有一个从节点;三主六从就是2,每个主节点有两个从节点;三主九从就是3,每个主节点有三个从节点,以此类推。

redis-cli --cluster create localhost:6381 localhost:6382 localhost:6383 localhost:6384 localhost:6385 localhost:6386 --cluster-replicas 1

出现以下提示是提示我们主从在同一台机器上,这里演示就输入yes跳过:
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群

创建完成后,会显示以下界面,写的很清楚了,有三主三从:
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
验证:

ps -ef|grep redis

redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
查看主从关系;

redis-cli --cluster check localhost:6381

redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
普通方式登录:没有转发机制,假设在6381上获取6382的key,会报错

redis-cli -h localhost -p 6381

集群方式登录:推荐这种方式,默认开启转发机制,假设在6381上获取6382的key,会自动转发,然后成功获取

redis-cli -h localhost -p 6381 -c

获取集群关系:

redis-cli -h localhost -p 6381 -c cluster slots | xargs -n8 | awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':'|uniq

redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群

到这里部署已完成,可以登录某个主节点后测试:

set a1 1
set a2 2
set a3 3
set a4 4

redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式,redis,redis,集群

你会发现,每写入一个数据后,会分配到别的主节点上去,说明集群正常运行,数据分布在多个节点上,支持水平扩展存储方式,实现了真正意义上的集群。

注意:
1.不管哪个从节点挂掉,对整体集群运行没有影响,从节点恢复后,会自动复制主节点数据
2.不管哪个主节点挂掉,对整体集群运行没有影响,从节点会变成新的主节点,主节点恢复后,会变成新的从节点,但这是有一个过程的,并不是一瞬间完成
3.如果某个主节点和它的从节点同时挂掉,那么整个集群将变得不可用,这就是前面为什么说最少配置两台机器,而且主节点和从节点不能在同一台机器的原因。
4.相比于主从模式和哨兵模式,Cluster集群模式可以说是实现了真正意义上的集群,不仅仅支持自动故障转移,也支持自动分片和分布式存储。但是,redis集群是没有绝对数据安全的,只能说相比于主从和哨兵模式,Cluster集群模式大大提高了数据的安全性,减少了数据丢失的可能性,但并不代表绝对不会丢失数据,在某些特定情况,也是会存在数据不统一和丢失数据的情况,只是说这种几率很小。文章来源地址https://www.toymoban.com/news/detail-808208.html

到了这里,关于redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis追本溯源(四)集群:主从模式、哨兵模式、cluster模式

    Redis 有多种集群搭建方式,比如,主从模式、哨兵模式、Cluster 模式。 Redis 主从模式还解决了单点的问题。Redis 主库在进行修改操作的时候,会把相应的写入命令近乎实时地同步给从库,从库回放这些命令,就可以保证自己的数据与主库保持一致。那么,当主库发生宕机的时

    2024年02月14日
    浏览(44)
  • Redis(主从复制、哨兵模式、集群)概述及部署

    目录 一、Redis高可用 二、redis持久化 2.1 持久化的功能 2.2 Redis 提供两种方式进行持久化 2.3 RDB 持久化 2.3.1 触发条件  2.3.2 执行流程 2.3.3 启动时加载 2.4 AOF持久化 2.5 执行流程 2.5.1 命令追加(append)  2.5.2 文件写入(write)和文件同步(sync) 2.5.3 文件重写(rewrite) 2.5.3.1 文件重写的

    2024年02月15日
    浏览(41)
  • 【2023-05-01】redis集群(主从、哨兵、cluster集群)

    主从复制 :采用的是一主多从模式,一个master节点可以用有多个slave节点,一个slave节点可以有多个slave节点 优点: ​ 1、主从结果可以读写分离,主从同步是采用的非阻塞同步,slave节点在完成同步之前有查询请求,则返回同步之前的数据。 ​ 2、slave节点可以连接slave节点

    2024年02月02日
    浏览(37)
  • redis的主从复制,哨兵和cluster集群

    目录 一、redis的高可用 1)redis高可用的概念 2)Redis的高可用技术 二、redis主从复制 1)主从复制的作用 2)主从复制流程 三、redis一主二从的部署 实验组件 实验步骤 环境准备 修改内核参数 安装 Redis 创建redis工作目录 环境变量 定义systemd服务管理脚本 修改 Redis 配置文件(

    2024年02月13日
    浏览(34)
  • Redis高可用之主从复制、哨兵、cluster集群

    主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从

    2024年02月06日
    浏览(42)
  • 数据库应用:Redis主从复制、哨兵、cluster集群

    目录 一、理论 1.Redis高可用 2.Redis主从复制 3.部署Redis主从复制 4.Redis哨兵模式 5.部署Redis哨兵模式 6.Redis集群模式 7.部署Redis集群 二、实验 1.部署Redis主从复制 2.部署Redis哨兵模式 3.部署Redis集群 三、问题 1.开启Redis群集失败 四、总结 (1)概念 在web服务器中,高可用是指服务

    2024年02月15日
    浏览(44)
  • DAY 68 redis高可用的主从复制、哨兵、cluster集群

    在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安

    2024年02月06日
    浏览(54)
  • redis集群和分片-Redis Cluster:分布式环境中的数据分片、主从复制和 Sentinel 哨兵

    当涉及到 Redis 中的集群、分片、主从复制和 Sentinel 哨兵时,这些是构建分布式 Redis 环境中非常重要的概念和组件。下面详细介绍这些概念以及它们在分布式环境中的作用。 Redis Cluster 是 Redis 官方提供的分布式解决方案,用于管理和维护多个 Redis 节点的分布式数据存储。R

    2024年02月13日
    浏览(61)
  • Redis集群(分布式缓存):详解持久化、主从同步原理、哨兵机制、Cluster分片集群,实现高并发高可用

            单机式Redis存在以下问题,因此需要Redis集群化来解决这些问题        Redis数据快照,简单来说就是 把内存中的所有数据都记录到磁盘中 。当Redis实例故障重启后,从 磁盘读取快照文件,恢复数据 。快照文件称为RDB文件,默认是保存在当前运行目录。     (1)

    2024年02月08日
    浏览(59)
  • Redis 主从配置、哨兵、集群模式

    目录 Redis 主从复制  主从复制的作用: 主从复制流程: 搭建Redis 主从复制 安装 Redis 环境准备 修改内核参数 安装redis 创建redis工作目录 环境变量 定义systemd服务管理脚本 修改 Redis 配置文件(Master节点操作) 修改 Redis 配置文件(Slave节点操作) 验证主从效果 Redis 哨兵模式

    2024年02月12日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包