redis常见问题

server/2024/11/13 15:22:00/
  1. 为什么使用缓存?
  1. 高性能:优化实际执行,当数据缓存到redis中后,后续的请求,实际上不需要去查询DB,提高了查询性能。500ms —> 50ms
  2. 高并发:redis支持10wqps,避免直接访问DB
  1. 使用缓存会带来什么问题?
  1. 双写不一致
  2. 缓存击穿(某个key失效)、缓存穿透(key不存在)和缓存雪崩(大规模失效)
  3. 并发竞争
  1. Redis为什么这么快?
  1. 纯内存操作:数据结构是基于哈希表+链表
  2. 线程模型:单线程
    问:为什么单线程还会这么快?
    redis服务器采用多路复用,即同时监听多个socket链接,将命令放到队列里面,然后再用文件事件处理器处理这批请求,处理的过程是单线程的。
    在这里插入图片描述
  1. 说一说redis的过期策略和内存淘汰策略?

过期策略:

  1. 惰性删除:访问的时候,才会去处理:判断是否过期,过期则删除。内存不友好。
  2. 定期删除:默认100ms随机检查一部分设置了过期时间的键,循环遍历,如果键过期,则删除。
  3. redis同时采用惰性删除和定期删除两种策略。综合了CPU和内存压力。

内存淘汰策略:
内存淘汰策略是允许reids在内存资源紧张时,根据一定策略主动删除一些键值对,已释放内存空间并保持系统的稳定性。

  1. 不淘汰策略
  2. 最近最少使用: 优先删除最近未访问的数据
  3. 根据过期时间优先 : 优先删除快过期的数据
  4. 随机删除:
  5. 全局最近最少使用:选择最少使用的key,忽略是否设置了过期时间
  6. 全局随机删除:不管是否设置了过期时间
  1. 什么是redis的哨兵机制?

高可用

  1. 什么是缓存击穿、缓存穿透、缓存雪崩?

缓存击穿:热点数据失效,大量请求打到DB
解决方案:

  1. 热点数据永不过期(定时任务,扫描key的访问量,超过阈值,延长过期时间)
  2. 互斥锁:只有一个线程去查询DB

缓存雪崩:大规模缓存失效,或者缓存宕机
解决方案:

  1. 过期时间加个随机值
  2. 互斥锁===访问DB
  3. 多级缓存:本地缓存—公共缓存—DB
  4. 部署redis集群,避免单机宕机导致不可用

缓存穿透:查询不存在的数据
解决方案:

  1. 缓存空数据
  2. 参数校验
  3. 布隆过滤器:过滤掉不存在的数据
  1. redis持久化机制
  1. RDB持久化
  2. AOF持久化
  3. RDB+AOF持久化
  1. xxx

http://www.ppmy.cn/server/119715.html

相关文章

机器学习笔记(一)初识机器学习

1.定义 机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。 机器学习有…

制作炫酷个人网页:用 HTML 和 CSS3 展现你的风格

你是否觉得自己的网站应该看起来更炫酷?今天我将教你如何使用 HTML 和 CSS3 制作一个拥有炫酷动画和现代设计风格的个人网页,让它在任何设备上看起来都无敌酷炫! 哈哈哈哈哈哈哈哈,我感觉自己有点中二哈哈哈哈~ 目录 炫酷设计理念构建 HTML …

51单片机应用开发---数码管的控制应用

实现目标 1、掌握数码管结构、驱动原理及应用; 2、掌握数码管段码表推导; 3、会编程让开发板8个数码管动态显示。 一、什么是数码管? 1.数码管定义 数码管,也称为LED数码管,基本单元是发光二极管(LED)。分为七段数…

接口测试(十二)

一、前台、后台、数据库三者关系 fiddler抓包是抓取客户端 --> 服务端 发送的的请求接口 开N个网页,只要有对后端发送请求, fiddler是无差别抓取 F12只抓取当前页面的数据 二、接口概念 接口是什么?— 传递数据的通道 测试系统组件间接口…

MVCC机制解析:提升数据库并发性能的关键

MVCC机制解析:提升数据库并发性能的关键 MVCC(Multi-Version Concurrency Control) 多版本并发控制 。 MVCC只在事务隔离级别为读已提交(Read Committed)和可重复读(Repeated Read)下生效。 MVCC是做什么用的 MVCC是为了处理 可重复读 和…

Redis的持久化和高可用性

目录 一、淘汰策略 1、背景 2、淘汰策略 二、持久化 1、背景 2、fork进程写时复制机制 3、Redis持久化方式 1、aof 2、rdb 三、高可用 1、主从复制 2、Redis哨兵模式 3、Redis cluster集群 一、淘汰策略 1、背景 首先Redis是一个内存数据库,将所有数…

VirtualFlow算例 | 水库大坝溃坝数值模拟

为充分利用水资源,人们在天然河流上修建了水库大坝,以达到调控洪水、发电、灌溉、供水、通航、旅游、渔业养殖等目的,水库大坝对人类社会和经济的发展起到了极其重要的推动作用,但是一旦由于某种原因发生溃坝失事,对下游所造成的生命和财产损…

蓝桥杯2024省C

P10898 [蓝桥杯 2024 省 C] 拼正方形 题目描述 小蓝正在玩拼图游戏,他有 7385137888721个 22的方块和 10470245 个 11 的方块,他需要从中挑出一些来拼出一个正方形,比如用 3 个 22 和 4 个 11 的方块可以拼出一个 44 的正方形,用…