一、为什么要用缓存
缓存嘛,对比计算机组成原理中的“高速缓存控制器”,就可以知道,缓存的存在是为了获取高性能,特别是在高并发场景下获取高性能。
二、缓存是如何获取高性能的
- SQL的执行是非常消耗性能的
- 有一些SQL经常是一样的,返回一样的结果
- 那么重复地去数据库中执行这些SQL,就显得不必要
- 这时,可以设置缓存,将此类相同的SQL,以及其查询结果存放在缓存中
- 那么理论上,只要数据库中的数据没有改变,就可以直接从缓存中获取数据,而不用去数据库执行SQL
- 所以,就减轻了数据库的负担,增加了系统的性能,减少了用户等待时间,提高了用户使用体验感
- 如果数据库的数据发生变化,在修改数据库中的数据同时,把缓存中的数据也做相应修改(当然,根据不用的业务场景和需求,可以采用不同的修改策略)
三、缓存是如何实现高并发的
- 缓存用的是内存,内存的读写速度很快,所以能极大的提高性能
- 采用并发控制访问、缓存分片、缓存集群、缓存策略优化、缓存预热、缓存监控和调优等设计和方法,以实现对高并发的支持
四、缓存可能存在的问题
- 缓存与数据库双写不一致
- 缓存雪崩
- 缓存穿透
- 缓存并发竞争