缓存
缓存是解决系统性能和稳定性的系统设计工具
缓存
什么是缓存
缓存是解决系统性能和稳定性的系统设计工具,提供高性能且稳定的数据源,缓存热点函数的中间状态,使得计算路径变短。
DB 泛指数据源,Cache 泛指快速路径上的局部数据源
简单来说:缓存就是数据交换的缓存区,是存贮数据的临时地方,一般读写性能较高。
缓存的作用
缓冲不仅能解决性能问题,还可以解决可靠性的问题。
你可以把它理解为是对关键路径上发数据源创建了一个副本,或者说是距离用户更近的副本。
同时我们可以利用缓存去存储一些中间计算的结果,相当于剪枝操作,加速计算。
缓存的作用:
- 降低后端负载
- 提高读写效率,降低响应时间
对于互联网业务来说,传统的直接访问数据库方式,主要通过数据分片、一主多从等方式来扛住读写流量。
但随着数据量的积累和流量的激增,仅依赖数据库来承接所有流量,不仅成本高、效率低、而且还伴随着稳定性降低的风险。
鉴于大部分业务通常是读多写少,甚至存在读操作数量高出写操作多个数量级的情况。因此,在架构设计中,常采用增加缓存层来提高系统的响应能力,提升数据读写性能、减少数据库访问压力,从而提升业务的稳定性和访问体验。
由于数据库持久化的特性,其读写QPS和性能相比于基于内存的Redis等缓存服务会相差很多。
例如MySQL最简单的按主键查询数据至少需要几毫秒,而Redis正常一次GET查询只需要几百微秒。
另外Redis的单机QPS相比MySQL也有明显优势,普通MySQL的QPS勉强过万,而Redis的QPS可以达到十万级别。
因此在应对大流量读或者性能敏感的场景,缓存就不得不考虑了。
缓存的成本
数据一致性成本
代码维护成本
运维成本
This post is licensed under CC BY 4.0 by the author.