首页 > 数据库 >Redis集群

Redis集群

时间:2024-04-28 16:55:20浏览次数:29  
标签:同步 Redis 主从 集群 master 节点

Redis集群有哪些方案?

在Redis中提供的集群方案总共有三种:主从复制、哨兵模式、Redis分片集群

主从同步

单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,可以搭建主从集群,实现读写分离。一般都是一主多从,主节点负责写数据,从节点负责读数据,主节点写入数据之后,需要把数据同步到从节点中。
主从同步分为了两个阶段,一个是全量同步,一个是增量同步。
全量同步是指从节点第一次与主节点建立连接的时候使用全量同步,流程是这样的:

  1. 从节点请求主节点同步数据,其中从节点会携带自己的replication id和offset偏移量。
  2. 主节点判断是否是第一次请求,主要判断的依据就是,主节点与从节点是否是同一个replication id,如果不是,就说明是第一次同步,那主节点就会把自己的replication id和offset发送给从节点,让从节点与主节点的信息保持一致。
  3. 同时主节点会执行bgsave,生成rdb文件后,发送给从节点去执行。从节点先把自己的数据清空,然后执行主节点发送过来的rdb文件,这样就保持了一致。
  4. 当然,如果在rdb生成执行期间,依然有请求到了主节点,而主节点会以命令的方式记录到缓冲区,缓冲区是一个日志文件,最后把这个日志文件发送给从节点,这样就能保证主节点与从节点完全一致了。后期再同步数据的时候,都是依赖于这个日志文件,这个就是全量同步。
    增量同步指的是,当从节点服务重启之后,数据就不一致了,所以这个时候,从节点会请求主节点同步数据。主节点还是判断不是第一次请求,不是第一次就获取从节点的offset值,然后主节点从命令日志中获取offset值之后的数据,发送给从节点进行数据同步。

哨兵模式

怎么保证Redis的高并发高可用

首先可以搭建主从集群,再加上使用redis中的哨兵模式,哨兵模式可以实现主从集群的自动故障恢复,里面就包含了对主从服务的监控、自动故障恢复、通知;如果master故障,Sentinel会将个slave提升为master。当故障实例恢复后也以新的master为主;同时Sentinel也充当Redis客户端的服务发现来源,当集群发生故障转移时,会将最新信息推送给Redis的客户端,所以一般项目都会采用哨兵的模式来保证redis的高并发高可用

使用redis是单点还是集群,哪种集群

使用的是主从(1主1从)加哨兵。一般单节点不超过10G内存,如果Redis内存不足则可以给不同服务分配独立的Redis主从节点。尽量不做分片集群。因为集群维护起来比较麻烦,并且集群之间的心跳检测和数据通信会消耗大量的网络带宽,也没有办法使用lua脚本和事务

redis集群脑裂,该怎么解决呢

由于redis master节点和redis salve节点和sentinel处于不同的网络分区,使得sentinel没有能够心跳感知到master,所以通过选举的方式提升了个salve为master,这样就存在了两个master,就像大脑分裂了一样,这样会导致客户端还在old master那里写入数据,新节点无法同步数据,当网络恢复后,sentinel会将old master降为salve,这时再从新master同步数据,这会导致old master中的大量数据丢失。
通过改变redis的配置中可以解决:

  1. 设置最少的salve节点个数,比如设置至少要有一个从节点才能同步数据。
  2. 设置主从数据复制和同步的延迟时间,达不到要求就拒绝请求,就可以避免大量的数据丢失。

分片集群

Redis的分片集群有什么作用

分片集群主要解决的是海量数据存储的问题,集群中有多个master,每个master保存不同数据,并且还可以给每个master设置多个slave节点,就可以继续增大集群的高并发能力。同时每个master之间通过ping监测彼此健康状态,就类似于哨兵模式了。当客户端请求可以访问集群任意节点,最终都会被转发到正确节点。

Redis分片集群中数据是怎么存储和读取

Redis 集群引入了哈希槽的概念,有 16384 个哈希槽,集群中每个主节点绑定了一定范围的哈希槽范围,利用CRC16根据key的有效部分计算哈希值,对16384取模来决定放置哪个,通过槽找到对应的节点进行存储。取值的逻辑是一样的。

标签:同步,Redis,主从,集群,master,节点
From: https://www.cnblogs.com/worshipone/p/18164039

相关文章

  • RabbitMQ docker集群 多机器部署
    参考参考https://blog.csdn.net/m0_47214030/article/details/131358298 ipporthostname192.168.2.2016041node1192.168.2.2026041node2192.168.2.2036041node31、启动三个RabbitMQ容器 新版本已经不建议通过环境变......
  • springboot~redis的hash结构为key设置过期策略
    redis配置文件开启键过期#The"notify-keyspace-events"takesasargumentastringthatiscomposed#ofzeroormultiplecharacters.Theemptystringmeansthatnotifications#aredisabled.##Example:toenablelistandgenericevents,fromthepo......
  • Hadoop集群模式的搭建之二:配置Hadoop平台基础环境
    在进行Hadoop集群的安装部署之前,需要对虚拟机进行一些基础环境配置。例如,为了在集群中识别主机,需要配置主机和IP地址的映射关系;为了使用Web相关的服务和访问连接,需要在集群中关闭并禁用防火墙功能;为了减少节点之间访问时人工输入用户密码,需要配置SSH免密登录;为了集群节点的时间能......
  • 使用Redis实现游戏排行榜
    排行榜在当今应用中扮演着至关重要的角色。无论是游戏中的玩家排名、社交平台的用户活跃度榜单,还是其他领域的各种榜单,排行榜都是用户参与性和互动性的关键。在实现排行榜功能时,选择合适的数据库和数据结构至关重要。Redis,作为一种内存数据库,以其高性能和灵活性而备受青睐。下面将......
  • Installation requirements for SAP Kernels on Windows (C++ runtime environment, V
      Symptom在Windows执行StartSAP,报错信息找不到指定的模块:"Theprogramcan'tstartbecausemsvcr100.dllismissingfromyourcomputer.""无法启动此程序,因为计算机中丢失了msvcr100.dll。尝试重新安装该程序以解决此问题。" OtherTermsC,C++,runtime,VCred......
  • vmware中安装centos7, 安装redis, 并通过可视化软件(RESP)连接
    1.虚拟机网络问题解决刚安好的centos可能没有网卡(输入ipa没有ip地址),此时需要进行如下操作 vi/etc/sysconfig/network-scripts/ifconfig-ens33修改成如下:ONBOOT=yes 然后重启网络服务:servicenetworkrestart此时重新查看ipa就可以看到ip地址了在本地ping虚拟机......
  • redis面试题
    redis面试题Redis是什么,应用场景:Redis是一种开源、内存中的数据存储系统,也被称为数据结构服务器。它支持多种数据结构(如字符串、哈希、列表、集合、有序集合、Bitmaps、HyperLogLogs等),并提供持久化、复制、事务、Lua脚本等功能。Redis常用于缓存、实时排行榜、计数器、消息队列......
  • Redis的数据持久化机制
    Redis的数据持久化机制Redis是一个高性能的内存数据库,为了保证数据的安全性,它提供了两种数据持久化机制:RDB和AOF。RDB(RedisDataBase):RDB是一种快照式的持久化方式,它会在指定的时间间隔内将内存中的数据生成一个快照文件,保存到磁盘上。当Redis重启时,可以通过加载RDB文件来恢复数......
  • SSRF打redis主从(更了)
    翻下去看更新受不了了。打的题目是网鼎杯2020玄武组的SSRFMe。打了一天,都是在moduleload那里失败,开了vps也不行,难道是redis版本对不上? 话不多说,我直接上payload,实在受不了了。[[email protected]]#redis-serverredis.conf[root@EddieMurphyredis-rogue-s......
  • redis分布锁
     配置Redisson连接在SpringBoot项目的配置文件application.yml中添加Redisson配置:spring:data:redis:host:localhostport:6379database:0redisson:codec:org.redisson.codec.JsonJacksonCodecsingle-server-config:ad......