如何做网站搜索引擎优化,推广的软件有哪些,银行网站建设方案,农安县住房和城乡建设厅网站1. 缓存击穿
问题描述#xff1a; 缓存击穿是指缓存中没有但数据库中有的数据#xff08;一般是缓存时间到期#xff09;#xff0c;这时由于并发用户特别多#xff0c;同时读缓存没读到数据#xff0c;又都去数据库去取数据#xff0c;引起数据库压力瞬间增大#xf…1. 缓存击穿
问题描述 缓存击穿是指缓存中没有但数据库中有的数据一般是缓存时间到期这时由于并发用户特别多同时读缓存没读到数据又都去数据库去取数据引起数据库压力瞬间增大造成过大压力。
解决策略 设置热点数据永不过期对于经常被访问的热点数据可以将其缓存时间设置为永不过期。 加互斥锁在访问缓存之前先使用分布式锁或其他并发控制手段确保只有一个线程或进程去数据库查询并将结果更新到缓存中其他线程或进程则等待缓存更新后访问。
2. 缓存穿透
问题描述 缓存穿透是指用户查询数据在数据库没有缓存中自然也不会有。但用户仍然不断发起请求以不存在的数据去访问缓存导致缓存被多次访问数据库压力骤增。
解决策略 布隆过滤器Bloom Filter对所有可能查询的参数以hash形式存储在控制层先进行校验不符合则丢弃从而避免了对底层存储系统的查询压力。 缓存空结果当查询数据库为空时也将这个空结果进行缓存并设置较短的过期时间。这样当再次查询该数据时可以直接返回缓存中的空结果避免了对数据库的查询。
3. 缓存雪崩
问题描述 缓存雪崩是指在某一个时间段缓存集中过期失效。在这个时间段内对缓存中的所有key的访问都会落在DB上造成DB访问量骤增引起DB压力瞬间增大甚至导致DB宕机。
解决策略 设置过期时间时加上一个随机值这样可以避免大量缓存同时失效。 双缓存策略准备两个缓存A和B。A的过期时间比B短。A缓存失效后请求会走到B缓存。B缓存再作为兜底数据来请求数据库。 后台更新缓存对于即将过期的缓存通过后台任务来提前刷新缓存避免缓存过期时间过于集中。