该系统使用过程中,由于同样的数据分别存在于数据库和缓存系统中,必然会造成数据同步或数据不一致性的问题。该企业团队为解决这个问题,提出了如下解决思路:应用程序读数据时,首先读缓存,当该数据不在缓存时,再读取数据库;应用程序写数据吋,先写缓存,成功后再写数据库;或者先写数据库,再写缓存。
王工认为该解决思路并未解决数据同步或数据不一致性的问题,请用100字以内的文字解释其原因。
王工给出了一种可以解决该问题的数据读写步骤如下:
读数据操作的基本步骤:
1.根据key读缓存;
2.读取成功则直接返回;
3.若key不在缓存中时,根据key (a) ;
4.读取成功后, (b) ;
5.成功返回。
写数据操作的基本步骤:
1.根据key值写 (c) ;
2.成功后 (d) ;
3.成功返回。 .
请填写完善上述步骤中(a)~(d)处的空白内容。
缓存系统一般以key/value形式存储数据,在系统运维中发现,部分针对缓存的杳询,未在缓存系统中找到对应的key,从而引发了大量对数据库服务器的查询请求,最严重时甚至导致了数据库服务器的宕机。 经过运维人员的深入分析,发现存在两种情况: ( )用户请求的key值在系统中不存在时,会查询数据库系统,加大了数据库服务器的压力; ( )系统运行期间,发生了黒客攻击,以大量系统不存在的随机key发起了査询请求,从而导致了数据库服务器的宕机。 经过研究,研发团队决定,当在数据库中也未查找到该key时,在缓存系统中为key设置空值,防止对数据库服务器发起重复查询。 请用100字以内文字说明该设置空值方案存在的问题,并给出解决思路。
缓存系统中的key—般会存在有效期,超过有效期则key失效;有时也会根据LRU算法将某些key移出内存。当应用软件查询key时,如key失效或不在内存,会重新读取数据库,并更新缓存中的key。
运维团队发现在某些情况下,若大量的key设置了相同的失效时间,导致缓存在同一时刻众多key同时失效,或者瞬间产生对缓存系统不存在key的大量访问,或者缓存系统重启等原因,都会造成数据库服务器请求瞬时爆量,引起大量缓存更新操作,导致整个系统性能急剧下降,进而造成整个系统崩溃。
请用100字以内文字,给出解决该问题的两种不同思路。
第2章计算机与网络基础知识
请先在App中激活(应用市场搜“软考真题”)
笔记
WZH
请先在App中激活(应用市场搜“软考真题”)
2023-07-25