缓存
- 最通用的解释就是可以进行高速数据交换的存储器;
缓存与内存的区别
缓存 | 内存 | |
---|---|---|
掉电是否丢数据 | 丢 | 丢 |
物理结构是否相同 | 部分内存、缓存框架(软件,比如 Guava、Redis) | 一般为物理内存条 |
部署方式 | 所在主机、独立部署 | 所在主机 |
缓存的几种淘汰策略
FIFO | 先进先出
- 如果一个数据最先进入缓存, 则应该最早被淘汰;
LRU | 最不经常使用
- 缓存的内容都在一个数轴上(时间轴),最左边的缓存淘汰;
LFU | 最近最少使用
- 横轴是缓存,纵轴是缓存在一段时间的使用量,纵轴上的值最短的缓存淘汰;
缓存使用的前提
- 应用扛不住用户并发量的时候;
缓存的应用场景
- 将数据库的部分数据加入缓存;
- 列表排序分页等场景下,在缓存中完成;
- 并发情况下的计数器;
- 详情内容数据放在缓存;
- 分布式的 session;
- 热点数据排名,最热的数据放在前面,不热的数据放在后面,然后不断的更新这个排名;
- 发布订阅:一般 MQ 做这个事情,但是有的缓存框架(Redis)也可以做这个事情;
- 分布式锁:可以使用数据库、zookeeper、consul、etcd、redis 来做分布式锁;
网友评论