码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Redis面试题(五)


    文章目录

    • 前言
    • 一、使用过 Redis 做异步队列么,你是怎么用的?有什么缺点?
    • 二、 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
    • 总结


    前言

    1. 使用过 Redis 做异步队列么,你是怎么用的?有什么缺点?
    2. 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?

    `

    一、使用过 Redis 做异步队列么,你是怎么用的?有什么缺点?

    一般使用 list 结构作为队列,rpush 生产消息,lpop 消费消息。当 lpop 没有消息的时候,要适当 sleep
    一会再重试。
    缺点:
    在消费者下线的情况下,生产的消息会丢失,得使用专业的消息队列如 rabbitmq 等。
    能不能生产一次消费多次呢?
    使用 pub/sub 主题订阅者模式,可以实现 1:N 的消息队列。


    二、 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?

    缓存穿透
    一般的缓存系统,都是按照 key 去缓存查询,如果不存在对应的 value,就应该去后端系统查找(比如DB)。一些恶意的请求会故意查询不存在的 key,请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。
    如何避免?

    1. 对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该 key 对应的数据 insert 了之后清理缓存。
    2. 对一定不存在的 key 进行过滤。可以把所有的可能存在的 key 放到一个大的 Bitmap 中,查询时通过该 bitmap 过滤。
      缓存雪崩
      当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,会给后端系统带来很大压力。导致系统崩溃。
      如何避免?
    3. 在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个 key 只允许一个线
      程查询数据和写缓存,其他线程等待。
    4. 做二级缓存,A1 为原始缓存,A2 为拷贝缓存,A1 失效时,可以访问 A2,A1 缓存失效时间设置为短期,A2 设置为长期
    5. 不同的 key,设置不同的过期时间,让缓存失效的时间点尽量均匀

    总结

    1. 使用过 Redis 做异步队列么,你是怎么用的?有什么缺点?
    2. 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
  • 相关阅读:
    华资软件一面
    Vite2+Vue3+ts的eslint设置踩坑
    下载安装 VMware &虚拟机
    SQL中的约束
    RocketMQ入门了解
    基于Springboot+vue的甜品蛋糕销售商城网站 elementui
    JDK8的 ConcurrentHashMap 源码分析
    windows下flutter的环境安装
    华为云云耀云服务器L实例评测 | 由于自己原因导致MySQL数据库被攻击 【更新中。。。】
    url相关知识点
  • 原文地址:https://blog.csdn.net/weixin_47924016/article/details/133086257
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号