1、缓存用户定义的热点数据,用户直接从缓存获取热点数据,降低数据库的读写压力
2、mysql缓存是缓存频繁读写的数据,而不是根据业务需要。
3、先读redis缓存,缓存存在直接返回,缓存不存在,去访问mysql获取,再写redis。
4、缓存穿透:
问题:数据在redis缓存和mysql都无,一直读取不存在的数据,造成mysql崩溃。
解决:部署布隆过滤器
5、缓存击穿:
问题:redis缓存无数据,mysql有,大量并发连接请求,造成mysql崩溃。
解决:过热数据不过期,分布式锁。
6、缓存雪崩:
问题:大量缓存数据集中失效,但数据在mysql里存在,造成mysql崩溃。
解决:间隔设置过期时间。重启时,预先导入热数据到缓存(预热)。
缓存方案弊端: