后端存储实战课
李玥
京东零售计算存储平台部资深架构师
立即订阅
3654 人已学习
课程目录
已更新 27 讲 / 共 27 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (2讲)
开篇词 | 从今天起,换种方式学存储
免费
课前加餐 | 电商系统是如何设计的?
创业篇 (7讲)
01 | 创建和更新订单时,如何保证数据准确无误?
02 | 流量大、数据多的商品详情页系统该如何设计?
03 | 复杂而又重要的购物车系统,应该如何设计?
04 | 事务:账户余额总是对不上账,怎么办?
05 | 分布式事务:如何保证多个系统间的数据是一致的?
06 | 如何用Elasticsearch构建商品搜索系统?
07|MySQL HA:如何将“删库跑路”的损失降到最低?
高速增长篇 (7讲)
08 | 一个几乎每个系统必踩的坑儿:访问数据库超时
09 | 怎么能避免写出慢SQL?
10 | 走进黑盒:SQL是如何在数据库中执行的?
11 | MySQL如何应对高并发(一):使用缓存保护MySQL
12 | MySQL如何应对高并发(二):读写分离
13 | MySQL主从数据库同步是如何实现的?
14 | 订单数据越来越多,数据库越来越慢该怎么办?
海量数据篇 (10讲)
15 | MySQL存储海量数据的最后一招:分库分表
16 | 用Redis构建缓存集群的最佳实践有哪些?
17 | 大厂都是怎么做MySQL to Redis同步的?
18 | 分布式存储:你知道对象存储是如何保存图片文件的吗?
19 | 跨系统实时同步数据,分布式事务是唯一的解决方案吗?
20 | 如何在不停机的情况下,安全地更换数据库?
21 | 类似“点击流”这样的海量数据应该如何存储?
22 | 面对海量数据,如何才能查得更快?
23 | MySQL经常遇到的高可用、分片问题,NewSQL是如何解决的?
24 | RocksDB:不丢数据的高性能KV存储
结课测试 (1讲)
结课测试 | 后端存储,100分试卷等你来挑战
后端存储实战课
15
15
1.0x
00:00/00:00
登录|注册

16 | 用Redis构建缓存集群的最佳实践有哪些?

李玥 2020-04-02
你好,我是李玥。
之前连续几节课,我们都在以 MySQL 为例子,讲如何应对海量数据,如何应对高并发,如何实现高可用,我先带你简单复习一下。
数据量太大查询慢怎么办?存档历史数据或者分库分表,这是数据分片。
并发太高扛不住怎么办?读写分离,这是增加实例数。
数据库宕机怎么办?增加从节点,主节点宕机的时候用从节点顶上,这是主从复制。但是这里面要特别注意数据一致性的问题。
我在之前课程中,也多次提到过,这些方法不仅仅是 MySQL 特有的,对于几乎所有的存储系统,都是适用的。
今天这节课,我们来聊一聊,如何构建一个生产系统可用的 Redis 缓存集群。你将会看到,几种集群解决方案用到的思想,基本和我们上面讲的都是一样的。

Redis Cluster 如何解决数据量大、高可用和高并发问题?

Redis 从 3.0 版本开始,提供了官方的集群支持,也就是 Redis Cluser。Redis Cluster 相比于单个节点的 Redis,能保存更多的数据,支持更多的并发,并且可以做到高可用,在单个节点故障的情况下,继续提供服务。
为了能够保存更多的数据,和 MySQL 分库分表的方式类似,Redis Cluster 也是通过分片的方式,把数据分布到集群的多个节点上。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《后端存储实战课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(9)

  • 李玥 置顶
    Hi,我是李玥。

    这里回顾一下上节课的思考题:

    课后请你想一下,把订单表拆分之后,那些和订单有外键关联的表,该怎么处理?

    对于这些表,我的建议是,和订单表一起拆分,让相同订单ID的订单和关联表的数据分布到相同的分片上,这样便于查询。
    2020-04-03
    5
  • 发条橙子 。
    老师 有两个疑问点

    1. 大厂自建集群 是不是就是常说的使用一致性哈希来做槽的映射

    2. 既然自带集群包含了哨兵, 代理也包含 ,是不是哨兵的功能也是在自建中使用 ,还是大厂自建的也不用哨兵 是自己做的高可用

    作者回复: 每个公司的实现方案也都不一样,几种哈希方法没有哪种是绝对的好,所以并不统一。

    哨兵这种方式在逐步的被弃用,更多的使用类似于Paxos和Raft的一致性协议来通过选举和复制实现高可用。

    2020-04-03
    2
  • 暴君•熊
    老师,最后介绍的定制客户端模式来保存分片表。那redis的服务端不需要动嘛?当有新增或者删除节点的时候,服务端内部不还是需要使用流言来传播一次嘛?
    2020-04-20
  • mickey
    HDFS分片、复制和高可用原理基本一样,机架感知是独创。
    2020-04-20
  • 正在减肥的胖籽。
    请教老师一个问题:
     1.redis集群新增分片后,线上怎么实现好的平滑迁移?这个一直没有想到好的解决方法

    作者回复: 如果用的是官方的Redis Cluster,可以用它提供的redis-trib.rb自动平滑迁移。

    像Codis也提供了平滑迁移的管理工具。如果是自建的集群,相对就比较麻烦了。

    我会在后面的第20节课讲,怎么来平滑的迁移数据库,方法同样适用于迁移Redis。

    2020-04-02
  • sami
    cluster命令是受限的,跟mysql的分库分表一样,有一些场景也是无法支持
    2020-04-02
  • haijian.yang
    阿里云有个 redis 方案,冷数据存磁盘,热数据放在内存。
    2020-04-02
  • 特种流氓
    redis cluster集群 是不是就没有哨兵的概念了

    作者回复: 是的,redis cluster已经包含哨兵的功能了。

    2020-04-02
  • leslie
    其实这也反向提出了另一个问题mysql cluster的问题:其自身同样有cluster,可是真实环境下很少企业会去用mysql cluster;都是各自运用自己的方案去做集群,方案之前的课程中都有提及就不提了。
    自身的cluster在实际生产中极少被某些数据库使用这大概算是一大特点,尤其像我们所常见的mysql、redis、以及后面新出来的、、、
    2020-04-02
收起评论
9
返回
顶部