1.为什么需要缓存?
- 提升性能最直接的方法
- 原始数据存放在MySQL数据库上,MYSQL将数据存放在硬盘上,防止数据丢失
- 硬盘比内存设备在IO层面上慢了不止一个数量级
- 在多数互联网应用都是读多写少的场景,使用读写分离。数据写入mysql然后同步到redis中让用户进行读写,这里的redis就是缓存了
2.分布式缓存讲解
2.1客户端
浏览器将一些静态资源保存到本地(设置有过期时间),从而减少重复请求静态资源。
响应头:Expires与Cache-Control的区别
Expires是指定具体某个时间点缓存到期,而Cache-Control则代表缓存的有效期是多长时间。Expires设置时间,Cache-Control设置时长。
2.2 应用层缓存
CDN内容分发网络
企业级应用,nginx为代表
2.3 服务成缓存
进程内缓存
进程外缓存:代表Nginx
2.4 数据层缓存
分布式缓存
2.5 数据一致性问题
2.6 什么情况下使用多级缓存
第一种情况,缓存的数据是稳定的。
第二种情况,瞬时可能会产生极高并发的场景。
第三种情况,一定程度上允许数据不一致。