跳至主要內容
《数据密集型应用系统设计》笔记一——数据系统基础

《数据密集型应用系统设计》笔记一——数据系统基础

第一章:可靠、可扩展与可维护的应用系统

认识数据系统

单一工具难以满足复杂应用系统的需求,因此整体工作被拆解为一系列能被单个工具高效完成的任务,并通过应用代码将它们缝合起来。比如一个缓存、索引、数据库协作的例子: image.png 一个应用被称为数据密集型的,如果数据是其主要挑战(数据量,数据复杂度、数据变化速度)——与之相对的是计算密集型,即处理器速度是其瓶颈。 软件系统中很重要的三个问题:


钝悟...大约 20 分钟笔记分布式分布式综合分布式数据库原理
《数据密集型应用系统设计》笔记二

《数据密集型应用系统设计》笔记二

第五章:数据复制

复制主要指通过网络在多台机器上保存相同数据的副本。通过复制,可以达到以下目的:

  • 使数据在地理位置上更接近用户,从而降低访问延迟。如:CDN
  • 当部分组件出现故障,系统依然可以继续工作,从而提高可用性。
  • 扩展至多台机器以同事提供数据访问服务,从而提高读吞吐量。

主流的复制模式:主从复制、多主复制、无主复制。

复制需要考虑的细节:同步复制还是异步复制?如何处理失败的副本(故障转移)?处理策略通常采用可配置项来调整。


钝悟...大约 47 分钟笔记分布式分布式综合数据库原理
分布式面试总结

分布式面试总结

分布式缓存

Redis 有什么数据类型?分别用于什么场景

数据类型 可以存储的值 操作
STRING 字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作
对整数和浮点数执行自增或者自减操作
LIST 列表 从两端压入或者弹出元素
读取单个或者多个元素
进行修剪,只保留一个范围内的元素
SET 无序集合 添加、获取、移除单个元素
检查一个元素是否存在于集合中
计算交集、并集、差集
从集合里面随机获取元素
HASH 包含键值对的无序散列表 添加、获取、移除单个键值对
获取所有键值对
检查某个键是否存在
ZSET 有序集合 添加、获取、删除元素
根据分值范围或者成员来获取元素
计算一个键的排名

钝悟...大约 27 分钟分布式分布式综合分布式分布式综合面试