本篇文章主要内容
-
数据缓存
-
为何要使用缓存
-
哪类数据适合缓存
-
缓存的利与弊
-
如何保证缓存和数据库一致性
-
不更新缓存,而是删除缓存
-
先操作缓存,还是先操作数据库
-
非要保证数据库和缓存数据强一致该怎么办
-
缓存和数据库一致性实战
-
实战:先删除缓存,再更新数据库
-
实战:先更新数据库,再删缓存
-
实战:缓存延时双删
-
实战:删除缓存重试机制
-
实战:读取binlog异步删除缓存
缓存雪崩
缓存雪崩指的是Redis当中的大量缓存在同一时间全部失效,而假如恰巧这一段时间同时又有大量请求被发起,那么就会造成请求直接访问到数据库,可能会把数据库冲垮。
缓存雪崩一般形容的是缓存中没有而数据库中有的数据,而因为时间到期导致请求直达数据库。
解决方案
解决缓存雪崩的方法有很多:
-
1、加锁,保证单线程访问缓存。这样就不会有很多请求同时访问到数据库。
-
2、失效时间不要设置成一样。典型的就是初始化预热数据的时候,将数据存入缓存时可以采用随机时间来确保不会咋同一时间有大量缓存失效。
-
3、内存允许的情况下,可以将缓存设置为永不失效。