缓存的收益与成本

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

一、收益

1.加速读写

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

2.降低后端负载

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

所以说使用缓存的收益主要就是两点:加速读写和降低后端负载

二、成本

我们来看一下成本

1.数据不一致

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

2.代码维护成本

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

3.运维成本

  • 例如Redis Cluster

三、使用场景

最后我们来看一下缓存的使用场景。

1.降低后端负载

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

2.加速请求响应

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

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

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

更多好文

请扫描下面二维码

欢迎关注~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值