Redis常见的面试题二

1、Redis常用的五种数据类型

  1. String 字符串
  2. Hash 哈希
  3. list 队列
  4. Set 集合
  5. ZSert 有序集合

2、Redis如何保证缓存数据与数据库同步

  1. 设计合理的过期时间
  2. 进行删操作时同步删除redis缓存数据,改操作同步时修改redis数据

3、Redis如何实现分布式锁

        就是利用redis中的setnx的特性如果存在就不存入,不存在就存入并设置超时时间。利用该返回结果作为共享锁。共享锁使用完之后需要del释放。

        分布式锁不能解决超时的问题,当程序1的执行超出锁的超时时间,锁就会被释放,等待的线程就会去枪锁,当线程a抢到之后就会上锁,这时程序1执行完了,会 进行释放锁【这时释放的锁不是自己的而是线程a的锁】这便是问题的根本。所以我们往往会使用看门狗进行检测,来解决锁超时时间。  

 4、Redis内存淘汰策略?


   [1]volatile-lru:从已设置过期时间的数据集(server. db[i]. expires)中挑
选最近最少使用的数据淘汰。
   [2]volatile-ttl:从已设置过期时间的数据集(server. db[i]. expires)中挑
选将要过期的数据淘汰。
   [3]volatile-random:从已设置过期时间的数据集(server. db[i]. expires)中
任意选择数据淘汰。
   [4]allkeys-lru:从数据集(server. db[i]. dict)中挑选最近最少使用的数据
淘汰。
   [5]allkeys-random:从数据集(server. db[i]. dict)中任意选择数据淘汰。
   [6]no-enviction(驱逐):禁止驱逐数据。

5、什么是缓存穿透以及如何解决缓存问题

          缓存穿透:查询的数据在数据库中不存在在缓存中也不存在,这时时有人恶意访问这种数据,请求会到达数据库

           解决方案:

                第一步:在controller层 校验数据,对一些不合法的数据过滤掉

                第二步:使用bloom布隆过滤器

                第三步:存放一个空对象,并且设置过期时间不能超过5分钟

6、什么是缓存击穿以及如何解决 

            缓存击穿:数据库中存在,但是缓存中该数据过期了,这时有大量的请求访问该过期的数据。压力给到数据库

              解决方案:  

                 1、使用互斥锁

                  2、设置永不过期

7、什么是缓存雪崩以及如何解决

        缓存雪崩:当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统比如(DB)带来很大压力

                解决方案:

                   1、设置散列的过期时间

                    2、预热数据

                    3、搭建redis集群             

                      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab编程资源库(9)数据插值与曲线拟合

一、一维数据插值 在MATLAB中,实现这些插值的函数是interp1,其调用格式为: Y1interp1(X,Y,X1,method) 函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量…

第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024,9月13-15)

第三届人工智能、物联网与云计算技术国际会议(AIoTC 2024)将于2024年9月13日-15日在中国武汉举行。 本次会议由华中师范大学伍伦贡联合研究院与南京大学联合主办、江苏省大数据区块链与智能信息专委会承办、江苏省概率统计学会、江苏省应用统计学会、Sir Forum、南京理工大学、…

梯形图(Ladder Diagram,LD)

梯形图(Ladder Diagram,LD)是可编程逻辑控制器(Programmable Logic Controller,PLC)中最常用的一种编程语言,它模仿了继电器控制电路的外观,使得电气工程师和技术人员能够更容易理解…

昇思25天学习打卡营第21天|Pix2Pix实现图像转换

相关知识 图像翻译 图像翻译Image translation是一种计算机视觉任务,旨在将一种图像转换为另一种图像。典型的任务包括:图像到图像的转换如白天到黑夜,风格迁移,图像修复。 CGAN CGAN在GAN的基础上引入了条件信息,…

MATLAB-bode图编程

num[1 1];den [2 1];tf(num,den)bode(tf(num,den));hold on

python selenium selenium-wire使用代理

前言 最近使用selenium、selenium-wire爬取数据,在使用代理时查阅很多资料,在使用过程中发现很多资料、博客中都是错误的用法,误导初学selenium使用代理的开发者 描述: 我这里使用的是Python 3.12.2 selenium4.23.1 seleni…

torch fbgemm.dll 报错

这里写自定义目录标题 OSError: [WinError 126] The specified module could not be found. Error loading \"c:\\Users\\Noor\\anaconda3\\envs\\DL\\Lib\\site-packages\\torch\\lib\\fbgemm.dll\" or one of its dependencies."https://github.com/lucasg/De…

uniapp小程序中富文本内容渲染图片不展示的问题

文章目录 1.从后端请求的数据中图片是这样的2.前端我是用Uview中的u-parse组件3.这样修改去掉富文本中的所有反斜杠4.完美解决 1.从后端请求的数据中图片是这样的 <p><img src\\\"https://zhangsanfengcode.cn:8084/images/2024-06-28a257befe.jpg\\\" alt…

【XML入门精要】从零开始的开发之旅

参考文档&#xff1a;XML 教程 (w3school.com.cn) 简介 XML&#xff0c;全称eXtensible Markup Language&#xff0c;即“可扩展标记语言”&#xff0c;是一种用于存储和传输数据的标准格式。它由万维网联盟&#xff08;W3C&#xff09;开发&#xff0c;目的是克服HTML&#…

【网络流】——初识(最大流)

网络流-最大流 基础信息引入一些概念基本性质 最大流定义 Ford–Fulkerson 增广Edmons−Karp算法Dinic 算法参考文献 基础信息 引入 假定现在有一个无限放水的自来水厂和一个无限收水的小区&#xff0c;他们之间有多条水管和一些节点构成。 每一条水管有三个属性&#xff1a…

如何查看cpu架构,查看CPU架构的方法

查看CPU架构的方法有很多&#xff0c;具体取决于你使用的操作系统。以下是一些常见的操作系统中查看CPU架构的方法&#xff1a; Windows查看CPU架构的方法 使用系统信息工具 按 Win R 打开运行窗口。输入 msinfo32 并按 Enter。在系统信息窗口中&#xff0c;找到“处理器”一…

帆软报表学习官网 中文

帆软报表学习官网&#xff1a;快速入门指南- FineReport帮助文档 - 全面的报表使用教程和学习资料

懂个锤子Vue 项目工程化进阶⏫:

Vue项目工程化进阶⏫&#xff1a; 前言&#xff1a; 紧跟前文&#xff0c;目标学习Vue2.0——3.0&#xff1a; 懂个锤子Vue、WebPack5.0、WebPack高级进阶 涉及的技术栈… 当然既然学习框架的了&#xff0c;HTMLCSSJS三件套必须的就不说了&#xff1a; JavaScript 快速入门 …

Java中的异步非阻塞I/O操作

Java中的异步非阻塞I/O操作 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨一下Java中的异步非阻塞I/O操作。 一、异步非阻塞I/O简介 异步非阻塞I/O&#xff08;Asynchronous Non-Bl…

7-25学习笔记

一、锁对象 Lock接口 1、创建锁对象 ReentrantLock类 Lock locknew ReentrantLock(true); 默认创建的是非公平锁 在创建锁对象时传入一个true参数 便会创建公平锁 先来后到 是重入锁 排他锁 加锁后不允许其它线程进入 2、加锁、解锁 &#xff08;1&#xff09;loc…

OWASP ZAP:一款功能强大的开源Web安全扫描工具

目录 介绍 安装和配置 下载和安装 启动和配置 主界面概述 基本功能 自动扫描 手动测试 被动扫描 主动扫描 高级功能 代理功能 Fuzzer API 插件和扩展 使用场景 开发阶段 测试阶段 生产环境 实践案例 案例一&#xff1a;自动化扫描 案例二&#xff1a;手动…

Redis-数据的极速之旅(一)

Redis基础篇 Redis的自我介绍我的核心数据结构1.字符串&#xff08;String&#xff09;2.哈希&#xff08;Hash&#xff09;3.列表&#xff08;List&#xff09;4.集合&#xff08;Set&#xff09;5.有序集合&#xff08;Sorted Set&#xff09; 高性能原理1.Redis为什么快&…

B端系统UI个性化设计:感受定制之美

B端系统UI个性化设计&#xff1a;感受定制之美 引言 艾斯视觉作为ui设计和前端开发从业者&#xff0c;其观点始终认为&#xff1a;在当今竞争激烈的商业环境中&#xff0c;B端&#xff08;Business-to-Business&#xff09;系统的设计不再仅仅是功能性的堆砌&#xff0c;而是…

在线工具(网站)

1. 网站漏洞扫描程序 网站漏洞扫描程序是一种高度准确的漏洞扫描解决方案&#xff0c;经过了实际渗透测试的考验。快速检测 XSS、SQL 注入、命令注入、XXE 和其他关键问题 — 自动验证以消除误报。 https://pentest-tools.com/website-vulnerability-scanning/website-scanne…

ChatGPT建议前端学习计划

HTML&CSS基础 - 学习HTML标签、CSS属性、页面布局等基础知识 JavaScript基础 - 学习变量、数据类型、控制流、函数等基础知识 jQuery - 学习如何使用jQuery处理文档对象模型&#xff08;DOM&#xff09;、事件、动画等 Ajax - 全称为 Asynchronous JavaScript and XML&…