
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
缓存功能的应用在许多软件开发项目中都有不同程度的引入与应用,下面我们就通过案例分析来简单了解一下,缓存功能的引入与应用都有哪些好处和问题。
一、为什么引入缓存
何为缓存,简单点就是应用系统和数据库之间的一个存储介质。和计算机中CPU和内存之间的关系,我们知道CPU的速度很快,内存相比于数据库会慢很多,为了解决这个问题,引入了高速缓存,作为连接CPU和内存的桥梁,前提是高速缓存的读取/写入速度要比内存高很多,这样才有意义。下面看未引入缓存前的数据读取方式。
未引入缓存的访问流程就是用户发起请求到业务系统,业务系统访问数据。在并发不高的单系统中这样勉强是可以的,但是一旦有并发,势必会造成数据库的瓶颈,所以我们要引入缓存。
二、引入缓存的好处
上面分析随着业务系统访问的增多,数据库会形成访问瓶颈,要解决这个问题其实可以有以下几个方案,
1、数据库做主从,实现读写分离,主负责写,从负责读;
2、使用队列限制访问数据库的线程数;
上面仅是几种方案,但都存在问题,一种方案由于是主从,会存在主从延迟的问题,对数据实时性要求不高的场景是可以的,另外主从可能存在单点故障(做双主模式);二种虽然使用了队列限制,但是牺牲了用户体验,导致用户的访问会等待。下面就要引入要说的缓存,可以把部分热点数据放在缓存中,既能减轻数据的压力,又可以提高用户体验。
三、引入缓存后的问题
引入缓存后增加了系统的复杂度,同时会带来一些潜在的问题,大的问题即数据不一致。
1、读取流程存在的问题
由于所有的查询都先查询缓存,缓存不存在时才会查询数据,如果所有的缓存均不命中,那么查询就会全部涌向数据库;
如果缓存写入失败,那么下次再查询相同的数据又会查询数据库,所以写入缓存是重点保障的业务;
2、更新流程存在的问题
由于是先更新数据库,在更新缓存,如果缓存更新失败,那么会造成缓存和数据库的不一致,这个不一致可以通过以下方式解决
1、更新缓存时采用先删除再写入的方式进行,即使删除成功未写入也是数据库中有数据,缓存中没有数据;也存在删除不成功的情况;
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。