zoukankan      html  css  js  c++  java
  • 缓存雪崩,缓存穿透解决方案

    问题1-  雪崩(缓存击穿):缓存的数据量非常大,缓存服务器不持久化。在高并发的情况下海量用户请求涌入,这时缓存失效,海量用户请求就去请求数据库,数据库承受不了,造成数据库宕机,重启后海量请求并未消失,继续涌入,继续造成数据库服务器宕机。永远起不来。这种情况就叫雪崩。

    解决雪崩问题:让缓存的数据定时的写磁盘,当缓存服务器意外停止,重启,当海量请求过来时,重启缓存服务器,如果本地有缓存文件,直接从文件中读取。放在内存中。redis是c语言写的,而且放入磁盘的内容的结构和内存中的结构一致。所以读取非常快。即使有部分的请求在恢复过程中访问到数据库,因为数量非常少,数据库还是能承受的。缓存恢复后,其他的大量的海量的请求就都被拦截了,这样就可以保证数据库不受威胁。

    问题2- 缓存有多种,为什么选择redis?

    主流缓存框架:

    1)ehcache,框架底层喜欢用这个spring 、 hibernate 、mybatis(二级缓存)

    2)memCache分布式缓存框架,百万级别,但是存在一个最重要的缺点-不落地,重启服务器内存中的数据就没有了。数据类型:字符串,多线程。

    3)redis多个随时落地。数据持久化。提供“丰富”数据类型:string/list/hash/set/oset(排序)多线程和多时例。内存数据库。

  • 相关阅读:
    [SDOI 2009] HH去散步
    [SDOI 2017] 新生舞会
    【期望 数学】7.6神经衰弱
    初涉2-SAT
    【tarjan 拓扑排序 dp】bzoj1093: [ZJOI2007]最大半连通子图
    【贪心】bzoj1572: [Usaco2009 Open]工作安排Job
    【贪心优化dp决策】bzoj1571: [Usaco2009 Open]滑雪课Ski
    概述「并查集补集转化」模型&&luoguP1330 封锁阳光大学
    初涉tarjan缩点
    初涉三元环
  • 原文地址:https://www.cnblogs.com/dgsh/p/6560585.html
Copyright © 2011-2022 走看看