redis16个库 redis做主库要求

本文目录一览:

  • 1、使用redis集群应该注意什么
  • 2、简介redis之主从复制
  • 3、玩转Redis的高可用(主从、哨兵、集群)
  • 4、脑裂以及Redis主从同步中的坑
使用redis集群应该注意什么1、注意: 当添加节点成功以后,新增的节点不会有任何数据 , 因为它没有分配任何的slot(hash槽) 。我们需要为新节点手工分配slot 。
2、Redis集群,要保证16384个槽对应的node都正常工作,如果某个node发生故障,那它负责的slots也就失效 , 整个集群将不能工作 。为了增加集群的可访问性,官方推荐的方案是将node配置成主从结构,即一个master主节点,挂n个slave从节点 。
3、FLUSHDB and FLUSHALL: FLUSHDB 命令用于清空当前库中的所有键值对,FLUSHALL 命令用于清空所有库中的键值对 。在 Redis 集群模式下,这两个命令是被禁止使用的 。
简介redis之主从复制Redis主从复制可以将写入操作集中在主节点,提高写入性能 。同时从节点负责读取数据,可以分担主节点的读取负担,提高读取性能 。
传统的Redis集群采用的主从复制模式,一般为一主多从 , 主节点有读写权限,但是从节点只有读的权限 。主节点会定期将数据同步到从节点中,保证数据一致性的问题 。
Redis迁移数据有多种方法 , 包括使用RDB和AOF文件、主从复制以及使用专门的工具 。
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器 。前者称为主节点(master),后者称为从节点(slave) , 数据的复制是单向的,只能由主节点到从节点 。
Redis为复制积压缓冲区设置的默认大小为1MB,如果主服务器需要执行大量写命令 , 又或者主从服务器断线后重连接所需的时间比较,那么这个大小也许并不合适 。
玩转Redis的高可用(主从、哨兵、集群)1、Redis主从复制是指在一个Redis集群中 , 将一个Redis节点作为主节点,其余的Redis节点作为从节点 。主节点负责写入数据,从节点负责读取数据 。
2、哨兵模式解决了故障不能自动恢复的问题,但仍存在的问题是:Redis较难支持在线扩容 , 对于集群,容量达到上限时在线 扩容会变得很复杂。
3、Redis的哨兵机制就是解决主从复制存在缺陷(选举问题),解决问题保证我们的Redis高可用 , 实现自动化故障发现与故障转移 。要使用哨兵机制,除了启动Redis服务以外 , 还要启动哨兵服务来进行监控 , 会介绍详细步骤 。
4、redis高可用:如果你做主从架构部署,其实就是加上哨兵就可以了,就可以实现 , 任何一个实例宕机,自动会进行主备切换 。
5、这个哨兵模式才稳定下来,无论是主从模式 , 还是哨兵模式,这两个模式都有一个问题,不能水平扩容,并且这两个模式的高可用特性都会受到Master主节点内存的限制 。
6、原理:当主节点出现故障时,由Redis Sentinel自动完成故障发现和转移,并通知应用方,实现高可用性 。
脑裂以及Redis主从同步中的坑所谓的脑裂 , 就是指在主从集群中,同时有两个主节点 , 它们都能接收写请求 。而脑裂最直接的影响,就是客户端不知道应该往哪个主节点写入数据,结果就是不同的客户端会往不同的主节点上写入数据 。
因为 master - slave的复制是异步 的(客户端发送给redis , 主节点数据同步到内存中后就返回成功了) 所以可能有部分数据还没复制到slave,master就宕机了 , 此时master内存中的数据也没了,这些部分数据就丢失了 。
redis集群没有过半机制会有脑裂问题,网络分区导致脑裂后多个主节点对外提供写服务 , 一旦网络分区恢复,会将其中一个主节点变为从节点 , 这时会有大量数据丢失 。
【redis16个库 redis做主库要求】redis的集群脑裂是指因为网络问题,导致redis master节点跟redis slave节点和sentinel集群处于不同的网络分区,此时因为sentinel集群无法感知到master的存在,所以将slave节点提升为master节点 。

    推荐阅读