互联网面试-什么是分布式缓存以及其使用场景?

缓存技术的使用,是为了解决频繁访问数据存储所带来的底层数据查询延迟问题,可以提升用户对数据的访问速度。一般我们将缓存分为进程级别的缓存与分布式缓存,其中进程级别的缓存是指在服务器应用内部的缓存,是通过Map、List等来实现存储的;分布式缓存则是指将缓存数据单独存放在分布式系统中,可以方便的实现缓存的统一管理和存储。一般采用分布式缓存技术Ehcache、Redis和Memcached等。

什么是分布式缓存?

当我们需要频繁去访问一些基本数据的时候,例如字典信息、配置信息等数据的时候,为了加快系统的响应速度,往往会将一些数据缓存到内存中,这样的话用户在访问的时候就可以实现快速数据读取,而不需要去频繁的查询数据库,带来不必要的资源消耗。如下图所示

在用户有写请求的时候先去更新数据库的内容,然后将更新之后的数据放入到缓存中,在用户进行读请求的时候先去缓存中进行查找,如果找到了对应的数据,那么就会返回给用户,如果没有找到数据则从数据库中进行查找。

而分布式缓存是相对于传统的基于进程内的缓存而言的,对于传统的单点Web系统一般使用进程内部的缓存就可以实现缓存服务了。但是对于一个分布式系统而言则需要通过如下的方式来实现缓存,这样在其中一个服务器节点出现故障的时候其他节点照样可以提供缓存操作。


分布式缓存设计所要解决的核心问题

在分布式缓存使用过程中会出现各种各样的问题。例如缓存雪崩、缓存穿透、缓存降级等等,那么这些问题在不同的应用场景下有不同的解决方案,下面我们就来看看常用的一些问题以及解决方案。

缓存预热

缓存预热是指用户请求数据前先将数据加载到缓存系统中,用户查询事先被预热的缓存数据,这样可以提升查询的效率。缓存预热的方式一般有系统启动时加载、定时加载等方式。

缓存更新

当我们在操作的时候数据发生了改变之后就会发生缓存更新的问题,那么在发生数据变化的时候如何去更新缓存,下面我们提供了四种缓存更新策略。

缓存淘汰策略

在缓存数据过多的时候需要使用某种淘汰算法来决定淘汰哪些数据。下面我们来看一下常用的淘汰算法

缓存雪崩

缓存雪崩是指在同一时间内由于大量的缓存失效,导致大量原本应该从缓存中获取的数据失效,这些请求直接去数据库中进行请求,这将会对数据库服务器的CPU和内存等资源造成巨大的压力,严重的时候会导致数据库宕机,无法提供数据服务,最终导致系统崩溃。

缓存穿透

缓存穿透是指由于用户请求数据在缓存中没有找到,这个数据穿透缓存操作直接到数据库中进行查询,然后在数据库中也没有发现对应的数据。这种请求过多的时候就会导致数据库过载,并且引发一系列的问题。常用的方式缓存穿透问题的方法有布隆过滤器和cache null策略。

缓存降级

缓存降级是指由于大量的访问请求进入,导致服务响应时间较长,首先需要选择保证核心业务的运行,减少非核心业务的资源使用,这个时候就需要对缓存也进行一定的降级操作。常见的缓存服务降级策略如下

展开阅读全文

页面更新:2024-03-03

标签:分布式   缓存   底层   算法   场景   操作   数据库   时间   数据   用户   系统

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top