17 redis集群方案

1、RedisCluster分布式集群解决方案

为了解决单机内存,并发等瓶颈,可使用此方案解决问题.
Redis-cluster是一种服务器Sharding技术,Redis3.0以后版本正式提供支持。

这里的集群是指多主多从,不是一主多从。

2、redis集群的目标
java 复制代码
1.高性能可线性扩展至最多1000节点
2.集群中没有代理,(集群节点间)使用异步复制,没有归并操作。

可以接受的写入丢失

在发生failover之前的小段时间窗内的写操作可能在failover中丢失)。而在(网络)分区故障下,对少数派master的写入,发生写丢失的时间窗会很大。
可用性:

Redis Cluster在以下场景下集群总是可用:大部分master节点可用,并且对少部分不可用的master,每一个master至少有一个当前可用的slave。更进一步,通过使用 replicas migration 技术,当前没有slave的master会从当前拥有多个slave的master接受到一个新slave来确保可用性。

3、Redis Cluster的日常工作
java 复制代码
1.负责维护数据,和获取集群状态,包括将keys映射到正确的节点。
2.集群节点同样可以自动发现其他节点、检测不工作节点、以及在发现故障发生时晋升slave节点到master
3.所有集群节点通过由TCP和二进制协议组成的称为 Redis Cluster Bus 的方式来实现集群的节点自动发现、故障节点探测、slave升级为master等任务。
4.每个节点通过cluster bus连接所有其他节点。
5.节点间使用gossip协议进行集群信息传播,以此来实现新节点发现,发送ping包以确认对端工作正常,以及发送cluster消息用来标记特定状态。
6.cluster bus还被用来在集群中创博Pub/Sub消息,以及在接收到用户请求后编排手动failover。
4、分片模块

哈希槽(Hash Slot)

各种分区方案

相关推荐
❥ღ Komo·34 分钟前
PHP数据库操作全攻略
数据库·oracle
程序新视界1 小时前
MySQL的整体架构及功能详解
数据库·后端·mysql
ANYOLY1 小时前
MySQL索引指南
数据库·mysql
怪兽20142 小时前
Redis过期键的删除策略有哪些?
java·数据库·redis·缓存·面试
骑士雄师3 小时前
使用 IntelliJ IDEA 结合 DBeaver 连接 MySQL 数据库并实现数据增删查改的详细步骤:
数据库·mysql·intellij-idea
呼哧呼哧.8 小时前
Spring的核心思想与注解
数据库·sql·spring
迎風吹頭髮9 小时前
Linux内核架构浅谈49-Linux per-CPU页面缓存:热页与冷页的管理与调度优化
linux·缓存·架构
21号 19 小时前
9.Redis 集群(重在理解)
数据库·redis·算法
爬山算法9 小时前
Redis(73)如何处理Redis分布式锁的死锁问题?
数据库·redis·分布式
嘗_9 小时前
sql特训
数据库·sql