服务器减压,你不得不知的缓存使用技巧

Leah发布于:2022-06-20阅读:0

服务器减压,你必须知道缓存技能

为什么要用缓存?

服务器减压,你不得不知的缓存使用技巧

一般来说,在访问量达到一定规模后,数据库的读写将成为瓶颈。我们将使用一些手段来减轻数据库的压力,使其能够正常工作。可考虑的手段包括读写分离、添加缓存服务器等。读写分离是为了尽可能分离数据库的读写动作,减少相互影响;添加缓存是为了减少直接读取数据库的动作,并将查询结果存储在缓存中,用户的请求与数据库隔离,从而降低数据库的压力。

这是缓存工作的理想方式,但只是理想

缓存穿透

所谓缓存渗透,是指用户要求在缓存系统中找到结果,然后在后端存储系统中找到数据,此时,如果数据不存在,访问相对较大,大量访问将直接击中数据库,负责存储服务器悲剧(如果左图),所以我们需要做一些努力,当数据不存在时,在缓存中写一个标志或空查询结果,减少数据库频繁命中的无用要求(如右图)

确认为空或空的查询结果也可以存储在单独的缓存区。

缓存雪崩

这是另一个问题。当系统中使用的缓存发生事故(网络故障、停机、服务挂断、缓存集体丢失等)时,缓存集体故障,导致短时间内要求到达数据库(数据存储层),导致数据库压力大crash掉。

为了防止这种情况,我们采取了几种方法:

1、我们使用多个例子来确保缓存的高可用性,并尽量避免当个别例子出现问题时导致全球缓存的问题。有很多这样的解决方案,比如memcache的一致性hash,redis的cluster为了避免单点故障,可以搜索此类数据redis或者memcache高可用性方案。

2、降级机制。这种方法也可以在许多高可用的设计中描述。简单地说,我们将用户与用户、资源与资源隔离开来。当某些数据出现问题或某些部分的要求达到阀值时,根据预设机制,请求只返回热点数据,以确保客户端不会产生天窗或无法响应的问题。

3、加锁。对于到达的要求,我们使用锁的机制,尽量排队,以减少数据库的并发性。有两种锁方案可供参考,一种是使用全局锁或字符串锁方案,是一个请求操作,其他请求处于等待状态,当请求处理下一个业务处理后,但如果请求挂断,会影响排队请求,请求处理可能不会在短时间内完成,会导致请求堵塞时间过长,第二个方案是操作,其他请求判断是否有锁,如果有直接跳过处理,返回热点数据。

需要说的是,降级机制不一定要放在图中的位置,也可以放在缓存前或其他位置。其主要目的是隔离问题资源,不影响客户端内容或使部分用户要求无法达到真正的业务逻辑,从而减轻业务处理压力。

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

本站原创内容未经允许不得转载,或转载时需注明出处:https://news.kd010.com/fwqjs/10857.html

TAG标签:服务器

上一篇:做好容错才能确保服务器的不间断运行
下一篇:香港服务器Windows和Linux系统的主要区别

相关文章

返回顶部