zoukankan      html  css  js  c++  java
  • 缓存穿透与雪崩

    缓存穿透是指查询一个一定不存在的数据,如查询id=-1的数据信息,由于缓存不命中(cache miss),还要到数据库去查,但是数据库也查不到,这时给查询请求返回空,并且不会写数据到缓存中,这样,下次同样的请求还是会到数据库去查,大量这样的请求将给数据库造成极大的压力从而失去了缓存的意义。

    解决方案有两个:

    1.第一次在数据库中查不到数据时,在给请求返回空的同时,也把空对象写到缓存中,这样以后再查的时候就会直接从缓存返回空了。

    2.在缓存前加一个布隆过滤器,把所有可能的键都放在里面,这样如果查询不存在的键时,就直接从布隆过滤器返回了,连缓存都不用查。

    参考博客:http://carlosfu.iteye.com/blog/2248185

    缓存雪崩是指缓存由于某种原因(可能是宕机)挂掉了,而导致所有的查询都去数据库查,很可能导致数据库也挂掉。

    预防缓存雪崩的方案:

    用redis集群保证缓存服务的高可用性,这样即使一个主redis挂掉,从redis会自动升为主redis。

    参考博客:http://carlosfu.iteye.com/blog/2249316

  • 相关阅读:
    Linux如何自动获取IP地址
    jq操作select集合
    UDP and TCP
    IPv6
    DHCP, NAT
    队列之顺序存储实现
    ARP, Fragmentation and Reassembly
    Classless Interdomain Routing (CIDR)
    Subnet Routing Examples
    Subnetting
  • 原文地址:https://www.cnblogs.com/koushr/p/5873405.html
Copyright © 2011-2022 走看看