标签:标识 缓存 一个 isp 完成 服务器 持久 程序 双十一
酷壳关于缓存的文章中提到 先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。 这一点主要是因为并发而导致的,我们来看一下还有那些方式更好地处理缓存。
Read Through 和上面大致相同,不同的是失效后,客户端“从数据库中取数据,成功后,放到缓存中”这步操作由服务器来完成,
Write Through 则是当更新数据时,先去缓冲中找是否有该数据,没有则直接更新数据库,然后返回。如果该数据存在缓存,则更新缓存,然后再由Cache自己更新数据库(这是一个同步操作)。图例如下 :
Write Behind 又叫 Write Back 。和我们的操作系统中的磁盘加载到内存,然后对数据进行更改的方式相同,将某个 page 标识为 dirty (脏页),当一定的时候进行回刷。
缓存和持久化数据是否一致。
缓存穿透的场景是查询一个根本不存在的数据,缓存不存在,数据库也不存在,这种情况下缓存没什么作用,当请求量大的时候,所有的请求都到了数据库,假如有恶意攻击,就可以利用这个漏洞,对数据库造成压力,甚至压垮数据库。 解决的方法
缓存雪崩,是指在某一个时间段,缓存集中过期失效。 例如以下的例子
缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。 例如某个电商项目,某个商品成为“爆款”。
标签:标识 缓存 一个 isp 完成 服务器 持久 程序 双十一
原文地址:https://www.cnblogs.com/Benjious/p/12108676.html