跳至主要內容
《数据密集型应用系统设计》笔记一之分布式数据系统

《数据密集型应用系统设计》笔记一之分布式数据系统

出于以下目的,我们需要在多台机器上分布数据:

  • 扩展性:当数据量或者读写负载巨大,严重超出了单台机器的处理上限,需要将负载分散到多台机器上。
  • 容错与高可用性:当单台机器(或者多台,以及网络甚至整个数据中心)出现故障,还希望应用系统可以继续工作,这时需要采用多台机器提供冗余。这样某些组件失效之后,冗余组件可以迅速接管。
  • 延迟考虑:如果客户遍布世界各地,通常需要考虑在全球范围内部署服务,以方便用户就近访问最近数据中心所提供的服务,从而避免数据请求跨越了半个地球才能到达目标。

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

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

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

认识数据系统

很多应用系统都包含以下数据处理系统:

  • 数据库:用以存储数据,这样之后应用可以再次面问。
  • 高速缓存: 缓存那些复杂或操作代价昂贵的结果,以加快下一次访问。
  • 索引: 用户可以按关键字搜索数据井支持各种过掳。
  • 流式处理:持续发送消息至另一个进程,处理采用异步方式。
  • 批处理: 定期处理大量的累积数据。

设计数据系统或数据服务时,需要考虑很多因素,其中最重要的三个问题:


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

分布式面试总结

分布式缓存

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

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

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