Redis分片集群

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 分片集群的相关内容

主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:

- 海量数据存储问题

- 高并发写的问题

使用分片集群可以解决这个问题;

分片集群是一种将数据分散存储在多个节点上的数据库架构。它通过将数据分割成多个片(shard),并将每个片存储在不同的节点上,从而提供更好的性能和可扩展性。

在分片集群中,每个节点都负责存储和处理一部分数据。当进行数据查询或写入操作时,系统会根据数据的分片规则将请求路由到相应的节点上。这种方式能够提高系统的并发处理能力,因为每个节点只需处理部分数据,减轻了单个节点的负载压力。

同时,分片集群还可以提供高可用性。当一个节点发生故障或维护时,系统可以自动将请求路由到其他可用的节点上,确保服务的连续性。

然而,分片集群也带来了一些挑战。首先,数据的分片需要设计合理的算法和策略,以确保数据在各个节点上均匀分布,避免出现热点数据。其次,跨片查询和事务处理需要额外的复杂性和开销。最后,数据的扩容和迁移也需要仔细规划和执行,以保证系统的稳定性和一致性。

总的来说,分片集群是一种适用于大规模数据存储和高并发访问的数据库架构,它可以提供更好的性能和可扩展性,但也需要综合考虑各种因素来实现和管理。

分片集群特征:

- 集群中有多个master,每个master保存不同数据

- 每个master都可以有多个slave节点

- master之间通过ping监测彼此健康状态

- 客户端请求可以访问集群任意节点,最终都会被转发到正确节点

分片集群存储数据是使用散列插槽原理来存储海量数据的.

插槽原理:

Redis会把每一个master节点映射到0~16383共16384个插槽(hash slot)上,查看集群信息时就能看到:

image.png

数据key不是与节点绑定,而是与插槽绑定。redis会根据key的有效部分计算插槽值,分两种情况:

- key中包含"{}",且“{}”中至少包含1个字符,“{}”中的部分是有效部分

- key中不包含“{}”,整个key都是有效部分

例如:key是num,那么就根据num计算,如果是{itcast}num,则根据itcast计算。计算方式是利用CRC16算法得到一个hash值,然后对16384取余,得到的结果就是slot值。

image.png

如图,在7001这个节点执行set a 1时,对a做hash运算,对16384取余,得到的结果是15495,因此要存储到7003节点。

到了7003后,执行`get num`时,对num做hash运算,对16384取余,得到的结果是2765,因此需要切换到7001节点。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
3月前
|
监控 NoSQL Redis
看完这篇就能弄懂Redis的集群的原理了
看完这篇就能弄懂Redis的集群的原理了
127 0
|
3月前
|
存储 NoSQL 算法
深入理解Redis分片Cluster原理
本文深入探讨了Redis Cluster的分片原理,作为Redis官方提供的高可用性和高性能解决方案,Redis Cluster通过数据分片和横向扩展能力,有效降低单个主节点的压力。
深入理解Redis分片Cluster原理
|
4月前
|
存储 NoSQL 算法
Redis 集群模式搭建
Redis 集群模式搭建
94 5
|
4月前
|
存储 缓存 NoSQL
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之Redis用于搭建分布式缓存集群问题如何解决
|
3月前
|
NoSQL Redis
Redis——单机迁移cluster集群如何快速迁移
Redis——单机迁移cluster集群如何快速迁移
137 0
|
3月前
|
NoSQL Linux Redis
使用docker-compose搭建redis-cluster集群
使用docker-compose搭建redis-cluster集群
551 0
|
3月前
|
NoSQL Linux Redis
基于redis6搭建集群
基于redis6搭建集群
|
4月前
|
消息中间件 监控 NoSQL
Redis哨兵改集群
【7月更文挑战第7天】