首页 > 编程知识 正文

分布式缓存redis部署方案,分布式缓存服务

时间:2023-05-03 10:24:03 阅读:44611 作者:4854

文章前言分布式缓存1、缓存平衡器2、缓存直通3、缓存预热4、缓存更新5、缓存停机

前言

如果你觉得有用的话,请给我博主点个赞,评论,收藏一键三连啊。 很难写啊^ _ ^。

而且听说点赞的人每天的运气都不会太差,如果真的是白妓女的话,请经常来。

分布式缓存序列号缓存问题1缓存平衡器2缓存穿透3缓存预热4缓存更新5缓存停机1缓存平衡器【缓存雪崩】表示原始缓存已过期(过期) 所有请求都联系数据库,但会给数据库的CPU和内存带来很大压力,严重时会导致数据库停机。 从而形成一系列连锁反应,整个系统崩溃。

解决思路:

达到降低各缓存过期重复率的目的,或者制造延迟过期行为,防止最终导致群体失效的事件。

解决方案:

第一个解决方案:

为key设置不同的缓存过期时间会降低每个缓存过期时间的重复率,从而避免发生集体禁用事件。

第二个解决方案:

将相应的缓存标志添加到每个缓存数据,记录缓存禁用,如果缓存标志被禁用,则更新数据缓存。 实例伪代码如下:

//伪代码公共对象获取产品列表new () { int cacheTime=30; String cacheKey='test_list '; //缓存标志_ signstringcachesign=cachekey ' _ sign '; 字符串sign=cache helper.get (cachesign ); //缓存值stringcachevalue=cache helper.get (cachekey ); if(sign!=null (返回缓存值; //过期,返回原样(else ) cachehelper.add ) cachesign,'1',cacheTime ); thread pool.queueuserworkitem ((arg )-)//此处一般为sql查询数据cache value=getproductlistfromdb ); //日期是缓存时间的两倍,用于脏读cachehelper.add(cachekey,cacheValue,cacheTime * 2)。 ); 返回缓存值; } 说明:

缓存标记:记录缓存数据是否过期,如果过期,通知另一个线程在后台更新实际密钥的缓存;缓存数据:其过期时间比缓存令牌的时间长一倍。 示例:缓存令牌的时间为30分钟,数据缓存设置为60分钟。 这样,在缓存标志key过期后,实际缓存可以将旧数据返回给调用方,新缓存2、缓存透明缓存穿透,直到另一个线程在后台更新这意味着用户查询时,在缓存中找不到它,每次都要去数据库再次查询并返回空值(等于进行了两次无用的查询)。 这样的请求会绕过缓存直接查询数据库,这也是经常出现的“缓存命中率”问题。

解决方案:

如果查询返回的数据为空,无论数据不存在还是系统故障,都会缓存空结果,但过期时间较短,最多不超过5分钟。 由于使用此直接设置的默认值存储在缓存中,因此第二次缓冲区检索将保留该值,并且不会继续访问数据库。

3、缓存预热缓存预热是指系统上线后,将【相关的缓存数据】直接加载到缓存系统中,用户请求时查询数据库后再进行数据

解决方案:

数据量小时,项目启动后自动加载; 数据量大的情况下,可以定时加载; 人工设计缓存加载web功能; 4、更新缓存更新缓存除了缓存服务器拥有的缓存吊销策略外,Redis默认情况下还有6个策略可供选择。 此外,还可以根据特定业务需求定制缓存处置。

定期清理过期缓存的用户请求时,判断用于该请求的缓存是否过期,过期后到下级系统获取新数据,更新缓存。 两者各有优劣,第一个缺点是维护大量缓存的密钥很麻烦,第二个缺点是每次用户请求时都必须判断缓存无效,逻辑比较复杂,具体使用哪个方案,大家都知道

5、缓存关闭需要确保服务在访问量激增、服务出现问题(响应时间慢、不响应等)或非核心服务影响核心进程性能时仍然可用。 即使服务受损。 系统可以根据一些重要数据自动降级,也可以配置交换机并手动降级。

降级的目的:

保证即使核心服务损坏也可以使用。 此外,某些服务不能降级(加入购物车、结算等)。

降级前要整理系统,看系统是否能失去保帅; 从而,整理出哪些是必须冒着生命危险保护的,哪些是可以降级的; 例如,可以参照日志级别来设定预案。

一般:(例如,一些服务可以偶尔因网络抖动或服务在线而超时并自动降级;警告:部分服务在一定时期内成功率有变动,例如95~100%之间可以自动降级或人工降级,发送警告;错误:例如,可用性低于90%,数据库连接池破裂,突然访问数量激增到系统能够承受的最大阈值,在这种情况下,根据情况自动降级或严重错误:例如,由于特殊原因数据错误,需要紧急人工降级。参考:

3359 blog.csdn.net/xlg en 157387/article/details/79530877

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。