Redis面试合集

Redis 面试题合集 给缓存设置过期时间,定期清理缓存并回写,是保证最终一致性的解决方案我们可以对存入缓存的数据设置过期时间,所有的写操作以数据库为准,对缓存操作只是尽最大努力即可。也就是说如果数据库写成功,缓存更新失败,那么只要到达过期时间,则后面的读请求自然会从数据库中读取新值然后回填缓存,达到一致性,切记,要以数据落库DB为准TTL随机数分散降低机率Redis宕机:利用集群提高服务的可用性快速失败、拒绝服务一人一单在单机运行的情况下且synchronized会保证线程任务顺序执行; 阅读详情

Redis

Redis是什么?

在哪里用到了Redis?结合项目

缓存穿透

查询一个不存在的数据,mysql也查不到,数据也不会写入缓存中,就每次都会直接跳过缓存查询DB导致
解决办法:
1.缓存空数据,把空数据进行缓存
2.使用bool过滤器,检索元素是否在集合中,在就继续查询,如果没有就直接返回空,内存占用少,不会有多余的key,但是实现复杂可能会误判

缓存击穿

某个key设置的时间过期了,这是恰好有大量针对这个key的并发请求过来,这时候可能会把DB压垮
解决办法
1.互斥锁(强一致,性能差)
设置一个互斥锁,限制数据库在一段时间内只能被一个线程读取
2.逻辑过期(高可用,性能好)
不设置过期时间,每次查询缓存的时候唤醒并重置逻辑过期时间

缓存雪崩

在同一时段内大量key同时失效或者Redis服务宕机
1.给不同的Key的TTL添加随机值
2.利用Redis集群(哨兵模式,集群模式)或者使用多级缓存,或者降级限流

问:mysql数据如何与redis数据同步呢?(双写一致性)
在项目中,主要是针对文章的热点数据进行缓存,不需要保证实时性,于是使用了异步方案进行同步数据。
我们使用的是延时一致性进行保持的一致性,使用Rabbitmq,这个插件有很强的可靠性。
1.添加依赖,在yml中加入配置
2.在每次修改或者新增数据的时候添加sendMessage进行插入数据,insert和update

读操作:缓存命中直接返回
写操作:延迟双删,无论是先删除数据库数据还是缓存都会产生脏数据,所以需要使用分布式锁,使用共享锁,读的时候不互斥,写的时候互斥,
使用MQ,在修改数据时发送消息,保证MQ的可靠性,还可以使用cannal。

Redis持久化

redis作为缓存,数据持久化怎么做的?
1.RDB :Redis数据快照,使用save/bgsave执行RDB,将内存的数据记录到磁盘中,save 900 1(900s内如果有一个key被修改,则执行bgsave,在conf文件中配置)
2.AOF:追加文件,redis处理的每次写命令会在AOF中,需要在redis.conf配置文件中开启AOF功能,经常使用everysec,

数据过期策略

redis的key过期后如何处理?
1.惰性删除 :过期后不删除,当需要的时候检查是否过期,过期就删掉重新写入,没有就直接读取
2.定期删除:每隔一段时间检查+删除。Slow模式/Fast模式

Redis数据淘汰策略

在这里插入图片描述

分布式锁

秒杀抢购时,使用redisson实现,Watch dog(看门狗)每隔releaseTime/3的时间做一次续期,都是基于lua脚本

消息队列

集群模式

主从复制
哨兵模式
分片集群

事务

超强、超详细的Redis知识点汇总合集(工作、面试必备) 1、什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。 因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的Key-Value DB。 Redis 的出色之处不仅仅是性能,Redis 最大的魅力是支持保存多种数据结构,此外单个 v 阅读详情

相关推荐

面试必备!Redis面试题合集

简单来说Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是Redis 的数据是存在内存中的,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。另外,Redis 除了做缓存之外,也经常用来做分布式锁,甚至是消息队列。Redis 提供了多种数据类型来支持不同的业务场景。Redis 还支持事务 、持久化、Lua 脚本、多种集群方案。缓存穿透说简单点就是大量请求的 key 根本不存在于缓存中,导致请求直接到了数据库上,根本没有经过缓存这一层。

hao_kkkkk的专栏 446

redis面试题合集

1.Redis为什么这么快? 首先,采用了多路复用io阻塞机制然后,数据结构简单,操作节省时间最后,运行在内存中,自然速度快 Redis为什么快--知乎 Redis为什么是单线程、及高并发快的大原因详解 2. 五种I/O模型介绍 IO 多路复用是5种I/O模型中的第3种,对各种模型讲个故事,描述下区别: 故事情节为:老李去买火车票,三天后买到一张退票。参演人员(老李,黄牛,售票员,快递员),往返车站耗费1小时。 1.阻塞I/O模型 老李去火车站买票,排队三天买到一张退票。 耗费:在车站吃.

M-Y 270

小案例:利用图床自动化批量上传图片并获取图片链接

用python爬虫写了一个小脚本,用来自动上传图片到图床,然后返回链接,我们只需直接复制链接就可以。(需要安装Requests库) 因为不同图床需要提交的POST表单不一致,所以在这里我用ImgURL图床做示范,如果大家有需求,可自行修改代码。使用脚本的时候,我们只需把需要上传的图片和这个脚本放在同一个文件夹中,然后运行脚本,稍作等待,看到提示时就可以在脚本运行文件夹中发现一个名为“图片链接地址.txt”的文件,里面就是图片链接啦! 四、图片链接地址.txt(单张图片):...

采菊东篱下,Python满乾坤! 4412

redis常见面试题合集

1.什么是 Redis? 2.Redis 的数据类型? 3.使用 Redis 有哪些好处? 4.Redis 相比 Memcached 有哪些优势? 5.Memcached 与 Redis 的区别都有哪些? 6.Redis 是单进程单线程的吗?为何它那么快那么高效? 7.一个字符串类型的值能存储最大容量是多少? 8.Redis 的持久化机制是什么?各自的优缺点? 9.Redis 常见性能问题和解决方案有哪些? 10.Redis 过期键的删除策略? 11.Redis 的回收策略(淘汰策略)? 12.为什么Red

架构路上的博客 314

PointNetLK实战:5步搞定点云配准(附ModelNet40数据集训练技巧)

本文提供了一份详细的PointNetLK实战指南,帮助读者在5步内掌握点云配准技术。文章以ModelNet40数据集为例,深入讲解了环境搭建、数据预处理、模型训练与调试等核心步骤,并分享了关键的训练技巧和调参策略,旨在让开发者快速实现并应用这一高效的深度学习配准方法。

wind6的博客 462

MMCV安装后报错‘from mmcv import Config’?别慌,这是MMCV 2.0的锅!快速降级回退MMCV 1.x全指南

本文详细解析了MMCV 2.0版本升级导致的‘from mmcv import Config’报错问题,提供了从诊断到降级回退MMCV 1.x的完整解决方案。通过pip和OpenMIM工具链的实操指南,帮助开发者快速解决版本冲突,确保项目稳定运行。

weixin_29102619的博客 263

Redis 经典面试题合集详解

缓存穿透:缓存穿透是指客户端请求的数据在缓存和数据库中都不存在,这样缓存永远不会生效,这样请求都会打到数据库。解决方案:如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。优点:实现简单,维护方便缺点:额外的内存消耗可能造成短期的不一致将所有可能存在的数据哈希存到一个足够大的 bitmap 中,一个一定不存在的数据会被这个 bitmap 拦截掉,从而避免了对底层存储系统的查询压力。

Java技术一点通 1432

Stata做DID平行趋势检验,用coefplot画图时遇到的3个坑及解决办法

本文详细解析了使用Stata进行DID平行趋势检验时,利用coefplot绘图可能遇到的三个常见问题及其解决方案。包括基线期选择陷阱、置信区间变形和图形元素错位,提供专业调试步骤和高阶技巧,帮助研究者高效完成学术级图表绘制。

weixin_42530458的博客 325

redis常见面试问题合集

Redis是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息队列。Redis支持多种数据类型,包括字符串、列表、集合、有序集合和哈希表。

gao571920436的博客 688

FDTD仿真实战:从材料导入到反射率曲线分析

本文提供了一份完整的FDTD仿真实战指南,详细讲解了从自定义材料(如WO3)数据导入、结构建模、仿真区域与网格设置,到光源与监视器配置、运行仿真并提取反射率数据的全流程。重点解决了材料库缺失、网格优化、边界条件设置等常见难题,旨在帮助研究人员高效、准确地通过FDTD仿真获取材料的关键光学特性——反射率曲线。

elastic6hunter的博客 341

AI 辅助编程全景:演进、提效场景与未来趋势

本文系统梳理了AI辅助编程的发展历程与应用场景。演进路径分为三代:从代码补全工具(2023)、对话式助手(2024)到自主编程代理(2025)。在软件全生命周期中,AI可显著提升各环节效率:需求分析阶段节省30-60%文档编写时间;设计阶段缩短40-60%技术调研周期;编码阶段通过智能补全提升55%任务速度;测试阶段减少30-60%测试编写时间。数据显示,2025年84%开发者使用AI工具,41%代码由AI生成,平均每周节省3.6小时。AI正推动开发者角色从编写者转变为审核者,但复杂业务逻辑和架构设计仍需人

甘蓝的专栏 473

redis面试题合集-高级

本文介绍了redis分布式相关知识,主要包括故障恢复、高可用、集群部署以及工作经验等。

for62的博客 1539

【拼多多笔试题汇总】2024-03-24-拼多多春招笔试题

A 小镇上有个奇特的游戏。游戏开始时,A 先生准备了一排 nnn 个物品。K 小姐和卢小姐则轮流进行操作。首先,K 小姐可以选择移除至多 xxx 个物品。接着,卢小姐也可以选择移除剩余物品中的至多 yyy 个。游戏的目标是,K 小姐想尽量让剩余物品的价值之和最大化,而卢小姐则想将剩余物品的价值之和最小化。假设两人都采取最优策略,请问最后剩余物品的价值之和是多少?第一行包含五个正整数 n,m,k,x,yn, m, k, x, yn,m,k,x,y,分别表示物品的总数、K 小姐最多可移除的物品数、卢小姐最多可移

春秋招笔试突围 1万+

redis面试题合集-基础

本文介绍了redis的基础知识,帮助我们更好的理解redis。

for62的博客 661

如何在飞腾平台上安装Ubuntu操作系统

注意: 若主板上配置的是NVME硬盘,在进行内核配置时,需要将内核的NEME驱动勾选上,否则移植内核时,无法找到文件系统,进不去操作系统。可以通过rufus软件将镜像做到U盘中,本次使用版本为Rufus 3.9.124 ,其他版本也可以。不要下载live版本的,没有准备网络环境,是一个头疼的事情,笔者暂时没有实现网络安装。将U盘接到主板usb口上,接上串口,显示器,,必需串口有打印才可以安装。可以通过dd命令,将iso安装到U盘。安装的是最小系统,缺少很多命令,需要联网更新,或则更换飞腾专用内核。

技术联盟 2645

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

DBA面试资源合集(含Oracle、MySQL、Redis等)

如今正值金九银十招聘季,作为高薪资岗位之一,应聘DBA的竞争也十分激烈。这篇文章整理了Oracle、MySQL等数据库相关的知识点学习资源和面试真题,大家可以看看,文末含经验、技巧分享。

ToyaAkira00的博客 1008

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Redis灵魂14问?2021大厂面试合集

前言 redis简单来说 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。所以在面试中我们经常可以看到redis的身影,今天给大家带来一道redis的面试真题以及解析,后面会给大家分享今年来redis常考试的一些真题。 正文 最近面试大厂的人,不被

m0_56710876的博客 274

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大厂面试最常被问的Redis问题合集

1.什么是redis? Redis 是一个基于内存的高性能key-value数据库。 2.reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限

程序员麦冬的博客(公众号同名) 354

Redis学习最终版:面试题合集

1、Redis持久化机制 Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。 当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。 实现:单独创建fork()一个子进程,将当前父进程的数据库数据复制到子进程的内存中,然后由子进程写入到临时文件中,持久化的过程结束了,再用这个临时文件替换上次的快照文件,然后子进程退出,内存释放。 RDB是Redis默认的持久化方式。按照一定的时间周期策略把内存的数据以快照的形式保存到硬盘的二进制文件。即S

努力才是唯一的入场券。 4万+

JAVA面试题合集十二(Redis)

1.Redis常见面试题 2.什么是Redis? Redis是一个基于C语言编写的开源的高性能非关系型BoSql的键值对数据库 Redis可以存储键和5种不同类型的值之间的映射.键类型只能为字符串.值可以为字符串,集合,有序集合,列表,哈希(散列表) 与传统数据库不同的是,Redis存储在内存中,所以读写速率非常快,.应用于缓存,每秒10万次读写 是性能最快的Key-Value DB。另外,Redis 也经常用来做分布式锁。Redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。 3.R

qq_44773677的博客 272

JWT,redis缓存相关面试题合集

session 是服务器存储用户状态的一种方式,通常通过在服务器上创建一个唯一的会话 ID,将用户的身份信息保存在会话中,然后将会话 ID 发送给客户端,客户端在后续请求中携带会话 ID,服务器通过会话 ID 来获取用户的身份信息。这种现象就叫做缓存击穿。每次执行该方法前,会先去缓存中查有没有相同条件下,缓存的数据,有的话直接拿缓存的数据,没有的话执行方法,并将执行结果返回。定时删除 在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除。

桃桃小鱿鱼的博客 273

华为资深架构师花数月整理:2021年最新版Java架构面试合集【Java基础+多线程+Mysql+Redis+JVM】

前言: 现在已经十二月除,金九银十也已经过去了,很明显今年的面试季明显不如往年火热,对于求职者来说,也更难了一些。,综合来看今年确实不是面试的最佳时期,不过趁今年所剩的时间来好好准备,明年的金三银四或许会顺利得多。不过,对于今年的应届生来说,等到明年再去面试,竞争就更大了。 不过,好在我们总能够找到一些好资源进行分享,今天分享的这份资料是2021年最新版Java架构面试合集,完整地看完之后,或许你就会觉得,应届生求职其实也没有那么难了。 【注意,注意,文末获取答案】 java基础 八种基本数据

程序员麦冬的博客(公众号同名) 772
上一篇: 如何判断当前环境是测试环境还是开发环境?
Timy_bai
博客等级 码龄7年 201粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Timy_bai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值