首页 > 数据库 >Redis集群

Redis集群

时间:2022-11-22 21:12:55浏览次数:36  
标签:主从复制 slave 数据库 Redis 哨兵 集群 sentinel master

Redis有三种集群方式:主从复制,哨兵模式和集群。

 

1 主从复制

在主从复制中,数据库分为俩类,主数据库(master)和从数据库(slave)。其中主从复制有如下特点:

  •     主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库
  •     从数据库一般都是只读的,并且接收主数据库同步过来的数据
  •     一个master可以拥有多个slave,但是一个slave只能对应一个maste

主从复制工作机制

当slave启动后,主动向master发送SYNC命令。master接收到SYNC命令后在后台保存快照(RDB持久化)和缓存保存快照这段时间的命令,然后将保存的快照文件和缓存的命令发送给slave。slave接收到快照文件和命令后加载快照文件和缓存的执行命令。复制初始化后,master每次接收到的写命令都会同步发送给slave,保证主从数据一致性。

主从配置

redis默认是主数据,所以master无需配置,我们只需要修改slave的配置即可。

//设置需要连接的master的ip端口:
slaveof 192.168.0.107 6379

//连接成功进入命令行后,可以通过以下命令行查看连接该数据库的其他库信息:
info replication

 

2 哨兵

哨兵的作用是监控 redis系统的运行状况,他的功能如下:

  • 监控主从数据库是否正常运行
  • master出现故障时,自动将slave转化为master
  • 多哨兵配置的时候,哨兵之间也会自动监控
  • 多个哨兵可以监控同一个redis

哨兵工作机制

哨兵进程启动时会读取配置文件的内容,通过sentinel monitor master-name ip port quorum查找到master的ip端口。一个哨兵可以监控多个master数据库,只需要提供多个该配置项即可。

哨兵启动后,会与要监控的master建立俩条连接:

  •     一条连接用来订阅master的_sentinel_:hello频道与获取其他监控该master的哨兵节点信息
  •     另一条连接定期向master发送INFO等命令获取master本身的信息

与master建立连接后,哨兵会执行三个操作,这三个操作的发送频率都可以在配置文件中配置:

  •     定期向master和slave发送INFO命令
  •     定期向master,slave的_sentinel_:hello频道发送自己的信息
  •     定期向master,slave和其他哨兵发送PING命令

哨兵配置

哨兵配置的配置文件为sentinel.conf,设置主机名称,地址,端口,以及选举票数即恢复时最少需要几个哨兵节点同意。

//只要配置需要监控的master就可以了,哨兵会监控连接该master的slave。
sentinel monitor mymaster 192.168.0.107 6379 1

//启动哨兵节点:
redis-server sentinel.conf --sentinel &

//可以在任何一台服务器上查看指定哨兵节点信息:
bin/redis-cli -h 192.168.0.110 -p 26379 info Sentinel

3 集群

使用集群,只需要将每个数据库节点的cluster-enable配置打开即可。每个集群中至少需要三个主数据库才能正常运行。

主从模式实现了数据的热备份,哨兵模式实现了redis的高可用。但是有一个问题,这两种模式都没有解决,这两种模式都只能有一个master节点负责写操作,在高并发的写操作场景,master节点就会成为性能瓶颈。

如图所示集群模式其实就是多个主从复制的结构组合起来的,每一个主从复制结构可以看成一个节点,那么上面的Cluster集群中就有三个节点。

 

 

 

资源:

https://blog.csdn.net/sun_lm/article/details/123467103

https://bukecode.blog.csdn.net/article/details/79931791

 

标签:主从复制,slave,数据库,Redis,哨兵,集群,sentinel,master
From: https://www.cnblogs.com/ningshare/p/16916427.html

相关文章

  • Redis常用基本数据类型
    Redis常用基本数据类型Redis数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sortedset:有序集合)。String(字符串)string是redis最基本的......
  • redis 指定数据库并模糊匹配删除
    目录redis指定数据库并模糊匹配删除实例脚本实例redis指定数据库并模糊匹配删除实例//指定database为1,且key为cicd:v2:cp:metadataDataSecurity2开头的所有redis-cli......
  • redis单机搭建
    1.获取rediswgethttp://download.redis.io/releases/redis-6.2.7.tar.gztar-xvfredis-6.2.7.tar.gz2.安装cd redis-6.2.7makecdsrc(生成bin目录到/usr/local/re......
  • k8s1.14.1 集群更新证书过期时间
    适用场景部分组件证书检查只有1年时间(即不止kubelet证书),但当前未过期部分老包可能会出现一些master组件证书,或者kubelet证书只有1年的时间,如果检查发现若干证书都是1年,需......
  • redisson分布式锁原理剖析
    redisson分布式锁原理剖析​ 相信使用过redis的,或者正在做分布式开发的童鞋都知道redisson组件,它的功能很多,但我们使用最频繁的应该还是它的分布式锁功能,少量的代码,却实......
  • redis安装-docker安装
    docker安装redis更加简单,一个命令就搞定。1、首先要安装docker略过。2、准备工作准备配置文件,这里单独根目录下建立一个redis文件夹存放cd/&mkdir-p/redis/co......
  • Swarm集群搭建(6)
    Swarm集群搭建官方文档:https://docs.docker.com/engine/swarm/#管理配置文件dockerconfig#查看已创建配置文件-dockerconfigls#将已有配置文件添......
  • Swarm集群弹性创建服务(8)
    Swarm集群弹性创建服务扩缩容功能,创建服务,动态扩展服务,更新服务,日志,灰度发布(更新网站(服务)时依旧提出服务,不挂404)功能:扩缩容功能(扩容:增加容器,缩容:减少容器),灰度发布目的:......
  • redis
    1、配置文件#wgethttp://download.redis.io/releases/redis-5.0.7.tar.gz#tarxfredis-5.0.7.tar.gz#cpredis-5.0.7/redis.conf/opt/redis#vimredis.comf......
  • LAB-17:集群故障排查
    LAB-17:集群故障排查LAB概述一个名为k8s-node-0的节点状态为NotReady,让其他恢复至正常状态,并确认所有的更改开机自动完成 LAB预配#预配关闭k8s-node-3节点......