咱们今天来讨论一下使用缓存后会有哪些收益与成本,咱们接下来分为收益、成本、使用场景三部分来讨论前端
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.运维成本运维
3、使用场景
最后咱们来看一下缓存的使用场景。性能
1.下降后端负载优化
- 对高消耗的SQL:join结果集/分组统计结果缓存。
- 例如作一个排行榜的计算须要涉及不少不少表,可是咱们只须要最终的计算结果。若是每次都去进行统计的话将会消耗大量的资源,这时候只须要放在缓存中读写就不须要计算了。
2.加速请求响应
- 利用Redis/Memcache优化IO响应时间。
3.大量写合并为批量写:
- 如计数器先Redis累加再批量写DB。
- 相似于秒杀系统、投票系统等,不须要每次都写DB,能够先写在Redis里再定时写入DB,这样会大量节省DB的消耗
更多好文
请扫描下面二维码
欢迎关注~