分片集群:横向扩展

简介: 【10月更文挑战第4天】

分片集群:横向扩展
简单来讲,如果一个实例扛不住写压力,我们是否可以部署多个实例,然后把这些实例按照一定的规则组织起来,作为一个整体对外提供服务,这样就可以解决集中写一个实例的瓶颈问题了。
问题转化为:如何组织多个实例
规则:

  1. 每个节点各自存储一部分数据,所有节点的数据之和才是全量数据
  2. 制定一个路由规则,对于不同的key,路由到固定的一个实例上进行读写
    而分片集群根据路由规则所在的位置不同,还可以分为两类:
  3. 客户端分片:key的路由规则放在客户端来做。缺点是客户端需要维护这个路由规则,需要耦合道业务代码里。还可以把路由规则封装为一个模块,当需要使用的时候,集成这个模块,这就是Redis Cluster采用的方案。
  4. 服务端分片:在客户端和服务端之间增加一个中间代理层,也就是我们经常听到的proxy,数据的路由规则放在proxy层维护。proxy层会把请求根据规则转发到对应的Redis节点上,而且当集群横向扩容的时候,客户端也是无感的。
    String类型
    基础的键值对类型 key表示名字 value表示值

    用法:

  5. SET key value :设置指定key的值为value,存在的话就更新值
  6. GET key:获取key的值
  7. DEL key:删除key
  8. INCR key:将key中的数值增加1,初始值为0
  9. DECR key:将key中的数值减少1

业务场景
缓存
背景:

用于缓存经常访问的数据,比如数据库查询到的结果、网页的内容等,提高访问速度并降低数据库压力

具体案例:

比如在app里,用户个人主页的信息,如头像、昵称等数据通常不会频繁变动,但是会被频繁的查询。每次用户访问个人主页或是查看其他用户个人主页的时候,都直接从数据库里查询信息会导致不必要的数据库负载

优点:

  1. 快速数据访问:Redis是内存数据库,读写能力高,大幅度降低了数据访问延迟,提高用户体验
  2. 减轻数据库压力:缓存频繁访问的静态数据,显著减少数据库查询,从而保护数据库资源,延长数据库寿命
  3. 高并发支持:处理大量用户的同时访问,保证系统在溜了高峰期的稳定性
  4. 灵活的缓存策略:易于实现缓存数据的更新和失效,结合适当的缓存过期合数据同步机制,保证数据的实时性和一致性

具体方案:

以商城的商品信息为例,当商品信息更新时,相应的缓存也更新或失效。

这里延伸出的一个问题是如何保持数据一致性

目录
相关文章
|
运维 NoSQL 安全
【最佳实践】高可用mongodb集群(1分片+3副本):规划及部署
结合我们的生产需求,本次详细整理了最新版本 MonogoDB 7.0 集群的规划及部署过程,具有较大的参考价值,基本可照搬使用。 适应数据规模为T级的场景,由于设计了分片支撑,后续如有大数据量需求,可分片横向扩展。
1167 1
|
存储 缓存 负载均衡
高可用mongodb集群(分片+副本):规划及部署
高可用mongodb集群(分片+副本):规划及部署
1268 0
|
3月前
|
存储 监控 NoSQL
*MongoDB的水平扩展主要通过分片技术实
*MongoDB的水平扩展主要通过分片技术实
52 5
|
7月前
|
存储 负载均衡 NoSQL
MongoDB分片技术:实现水平扩展的利器
【4月更文挑战第30天】MongoDB的分片技术是应对数据增长和复杂业务需求的解决方案,它将数据水平拆分存储在多个实例上,实现数据库的水平扩展。分片带来水平扩展性、负载均衡、高可用性和灵活的数据管理。分片工作涉及mongos路由进程、config server和shard实例。设置分片包括部署配置服务器、添加分片、启动mongos、配置分片键和开始分片。选择合适的分片键和有效管理能确保系统性能和稳定性。
|
4月前
|
运维 监控 安全
【TiDB原理与实战详解】2、部署与节点的扩/缩容~学不会? 不存在的!
TiUP 是 TiDB 4.0 引入的集群运维工具,TiUP cluster 用于部署、管理 TiDB 集群,支持 TiDB、TiFlash、TiDB Binlog 等组件。本文介绍使用 TiUP 部署生产环境的具体步骤,包括节点规划、工具安装、配置文件修改及集群部署等。同时,提供了常用命令和安全优化方法,并详细说明了如何进行集群的扩缩容操作,以及时区设置等维护工作。
|
5月前
|
存储 弹性计算 负载均衡
中间件冗余部署集群(Clustering)
【7月更文挑战第22天】
109 3
|
6月前
|
存储 NoSQL 算法
Redis集群,集群的概念 三种主流分片方式1.哈希求余 一致性哈希算法:方案三:哈希槽分区算法问题一Redis集群是最多有16384个分片吗问题二:为什么是16384个,集群扩容:1.新的主节点
Redis集群,集群的概念 三种主流分片方式1.哈希求余 一致性哈希算法:方案三:哈希槽分区算法问题一Redis集群是最多有16384个分片吗问题二:为什么是16384个,集群扩容:1.新的主节点
|
SQL 算法 Java
自定义水平分库分表策略【范围分片】
自定义水平分库分表策略【范围分片】
|
算法 Java 数据库连接
自定义水平分库分表的策略【精准分片】
自定义水平分库分表的策略【精准分片】
|
SQL 算法 Java
自定义水平分库分表策略【hint分片】
自定义水平分库分表策略【hint分片】