当前位置: 首页 > news >正文

【redis相关】

文章目录

  • redis相关
    • 一、什么是 Redis?
    • 二、缓存
      • 1.缓存穿透
        • (1)缓存空值
        • (2)布隆过滤器

redis相关

一、什么是 Redis?

Redis(Remote Dictionary Server)是一个开源的、基于内存的、支持多种数据结构的 Key-Value 存储系统。它可以用作数据库、缓存、消息队列等。

🚀 速度快,是 Redis 最大的特点!因为它将所有数据存储在内存中。

二、缓存

1.缓存穿透

就是指请求的数据既不在缓存里,也不在数据库里,但请求依然不停地打到数据库上,导致数据库压力剧增,甚至可能崩溃。
恶意攻击:通常表现为攻击者频繁请求大量不存在的 key,导致请求绕过缓存,直接打到数据库,造成数据库压力剧增,甚至宕机。

解决方式

(1)缓存空值

查询数据库返回的数据为空时,仍把这个空结果进行缓存。
优点:实现简单。
缺点:空值也会占用 Redis 内存,若缓存大量无效数据,会浪费缓存资源。

(2)布隆过滤器

优点:内存占用较少。
缺点:实现复杂,存在误判(误判率可设置,误判率在5%及以下可接受)。

原理
在这里插入图片描述

  • 相当于是一个以(bit)位为单位的数组,数组中每个单元只能存储二进制数0或1。
  • 在 Redis 缓存预热时,会先把缓存中的有效数据通过多个哈希函数映射到布隆过滤器的位数组上,将对应的索引位置置为 1。当有请求进来时,会用相同的哈希函数计算该数据对应的索引位置。若索引位置都为1,则说明数据“可能存在”,有一定误判的可能,但只要有一个索引位置是 0,就可以确定该数据一定不存在,直接返回,避免无效请求打到数据库。
  • 误判率:数组越大、哈希函数数量合理、插入元素越少,误判率就越低。误判率可以设置,大概不会超过5%,5%以内的误判率一般都项目也能接受,不至于高并发压倒数据库。
http://www.lryc.cn/news/582032.html

相关文章:

  • QML中的Item
  • TCP 事务全面研究:从原理到优化与故障排除
  • 百度开源文心 4.5 系列开源大模型 GitCode 本地化部署,硅基流动:文心 vs. DeepSeek vs. Qwen 3.0 深度测评
  • 剑指offer第2版:动态规划+记忆化搜索
  • 使用make编译ROS2节点
  • 如果让计算机理解人类语言- Word2Vec(Word to Vector,2013)
  • 利用英译法案例演示RNN中的注意力机制(基于PyTorch)
  • 超越存在性检查:掌握Linux中`ls`命令的终极指南
  • .net core mvc部署到win10本地的Ubuntu上
  • 【Linux | 网络】网络基础
  • 多模式编译器——vim的使用
  • FastMCP:用于构建MCP服务器的开源Python框架
  • UE 材质 变体 概念
  • C++11标准库算法:深入理解std::none_of
  • Pandas 学习教程
  • T01_神经网络
  • 【python实用小脚本-130】基于 Python 的 HTML 到 Markdown 转换工具:实现高效文档格式转换
  • 钉钉企业内部机器人实现单聊会话互动开发指南
  • 【LeetCode 热题 100】234. 回文链表——快慢指针+反转链表
  • TypeScript 基础与类型系统详解:从入门到实践
  • TB62216FTG,TB62216FNG东芝BiCD集成电路硅单片,PWM斩波型电机驱动集成电路
  • 【Chrome】‘Good助手‘ 扩展程序使用介绍
  • 【操作系统】页面置换
  • OpenWebUI(2)源码学习-后端retrieval检索模块
  • vulnhub靶机渗透:PWNLAB: INIT
  • 海外短剧系统开发:PC端与H5端的全栈实践与深度解析
  • Java-66 深入浅出 分布式服务 Netty详解 EventLoop
  • [特殊字符] Excel 读取收件人 + Outlook 批量发送带附件邮件 —— Python 自动化实战
  • 嵌入式硬件中电容的基本原理与实现详解02
  • Excel 的多线程特性