缓存的收益与成本

咱们今天来讨论一下使用缓存后会有哪些收益与成本,咱们接下来分为收益、成本、使用场景三部分来讨论前端

1、收益

1.加速读写数据库

  • 经过缓存加速读写速度:CPU L1/L2/L3 Cache、Linux page Cache加速硬盘读写、浏览器缓存、Ehcache缓存数据库结果
  • 收益是比较明显的,例如Redis、Memcache都是性能很是高的数据库,可是加速读写是相对的,并非说MySQL之类的数据库性能不够好,只是Redis性能会更高。

2.下降后端负载后端

  • 后端服务器经过前端缓存下降负载: 业务端使用Redis下降后端MySQL负载等
  • MySQL并非一个面向前端的大流量数据库,例如每秒10万的并发MySQL就比较吃力了,尤为是涉及一些大量数据的SQL就更慢了。

因此说使用缓存的收益主要就是两点:加速读写和下降后端负载浏览器

2、成本

咱们来看一下成本缓存

1.数据不一致服务器

  • 缓存层和数据层有时间窗口不一致,和更新策略有关。

2.代码维护成本并发

  • 多了一层缓存逻辑。
  • 本来只须要读写MySQL就能实现功能,但加入了缓存以后就要去维护缓存的数据,增长了代码复杂度。

3.运维成本运维

  • 例如Redis Cluster

3、使用场景

最后咱们来看一下缓存的使用场景。性能

1.下降后端负载优化

  • 对高消耗的SQL:join结果集/分组统计结果缓存。
  • 例如作一个排行榜的计算须要涉及不少不少表,可是咱们只须要最终的计算结果。若是每次都去进行统计的话将会消耗大量的资源,这时候只须要放在缓存中读写就不须要计算了。

2.加速请求响应

  • 利用Redis/Memcache优化IO响应时间。

3.大量写合并为批量写:

  • 如计数器先Redis累加再批量写DB。
  • 相似于秒杀系统、投票系统等,不须要每次都写DB,能够先写在Redis里再定时写入DB,这样会大量节省DB的消耗

更多好文

请扫描下面二维码

欢迎关注~

相关文章
相关标签/搜索