zoukankan      html  css  js  c++  java
  • redis使用中的问题

    热key问题

    问题描述:如果50万的QPS访问同一个key怎么处理?

    缓存穿透

    问题描述:访问不存在的key,导致每次都去DB查找,从而失去了缓存的意义,也加大了DB的压力。

    造成的问题:1、失去了缓存的意义 2、访问这些key频次高的话,会加大DB压力,甚至打崩DB。

    解决方案

    1、使用布隆过滤器:将所有存在的key哈希到一个足够大的bitmap中。一个不存在的key一定能被挡住,但如果结果告诉程序某个key存在,并不一定存在(因为存在hash碰撞)。

    2、回填空值到缓存。

    缓存击穿

    问题描述:由于设置了过期时间,如果在同一时间内一个key(热key)失效,如果某些时间内被高频词访问,那么造成缓存击穿。(缓存里没有,DB里有)

    造成的问题:对DB压力过大。

     解决方案:对key加锁,先加锁,然后在读mysql,这样可防止同意时刻大量读请求到达mysql。

    缓存雪崩

    问题描述:由于设置相同的过期时间,导致同一时间内大量的key失效。

    造成的问题:DB压力过大。打崩DB。

    解决方案:设置过期时间时随机配置过期时间。

  • 相关阅读:
    设计模式-总览
    restful
    springmvc异常统一处理(二)
    springmvc参数校验(二)
    跨语言的RPC
    更安全的RPC接口
    RPC版 “Hello World”
    用例(Use Case)
    参与者
    数据库知识基础入门
  • 原文地址:https://www.cnblogs.com/howo/p/12670710.html
Copyright © 2011-2022 走看看