Redis常见面试题(四)

news2024/11/25 10:35:00

1、Redis有哪些淘汰策略?

Redis目前有8种淘汰策略:

1)Volatile-lru: 设置了过期时间的Key使用了LRU算法淘汰;

2)Allkeys-lru: 所有key使用LRU算法;

3)Volatile-lfu: 设置了过期时间的key使用了LFU算法淘汰;

4)Allkeys-lfu: 所有key使用了LFU算法淘汰;

5)Volatile-random: 设置了过期时间的key使用随机淘汰;

6)Allkeys-random: 所有key使用随机淘汰;

7)Volatile-ttl: 设置了过期时间的key根据过期时间淘汰,越早过期越早淘汰;

8)Noeviction: 默认策略,当内存达到设置的最大值时,所有申请内存的操作都会报错,(如set,ipush等),只读操作如get命令可以正常执行.

Redis 4.0开始支持基于LFU算法的淘汰策略。

2、Redis为什么新增了LFU淘汰策略?

为什么Redis 4.0有了LFU?

比如Redis中的一个键,之前一直都没有被访问过,最近突然被访问了一次。

使用LRU淘汰策略就很难被淘汰,因为LRU会把它定义为热键,会很晚淘汰。而使用LFU淘汰策略就可能很快被淘汰,因为LRU优先淘汰最近

未被使用的,而LFU优先淘汰最近访问频率最低的。

LFU比LRU淘汰更精确,有助于提升Redis的缓存命中率。

3、Redis淘汰策略LRU和LFU的区别

两者的区别:

LRU淘汰策略优先淘汰未被使用的键,如果最近有被使用,那么被淘汰的概率越低。

LFU淘汰策略是Redis 4.0开始支持的,这种策略是基于键的访问频率进行淘汰,访问频率更低的键将更容易被淘汰。

4、Redis怎么配置淘汰策略?

修改Redis配置文件:

 

默认为noeviction,对于写请求不再提供服务

直接返回错误。

配置淘汰策略为"allkeys-lru'

 maxmemory- policy allkeys-lru

4、Redis过期键的删除策略有哪些?

Redis过期键的删除策略有3种:

1、定时删除

设置键的过期时间时,同时创建一个定时器, 当键达到过期时间时,让定时器执行键的删除操作。

2、惰性删除

这种策略不会定时、主动去删除过期的键,每次从键空间获取键时,首先检查该键是否过期,如果过期则主动删除该键,否则直接返回。

3、定期删除

程序每隔一段时间会取出一定数量的随机键进行检查,然后删除所有过期的键。

5、Redis如何提高多核CPU利用率?

可以在同一个服务器部署多个Redis的实例,并把他们当作不同的服务器来使用,在某些时候,无论如何一个服务器是不够的,所以, 如果你想使用多个CPU,你可以考虑一下分片(shard)

6、Redis如何实现大数据插入?

Redis 2.6开始redis-cli 支持一种新的被称之为pipe mode (管道 )的新模式用于执行大量数据

插入工作。

7、Redis的回收进程如何工作的?

1.一个客户端运行了新的命令,添加了新的数据。

2.Redis检查内存使用情况,如果大于maxmemory的限制,则根据设定好的策略进行回收。

3. 一个新的命令被执行,等等。

4.所以我们不断地穿越内存限制的边界,通过不断达到边界然后不断地回收回到边界以下。

如果一个命令的结果导致大量内存被使用(例如很大的集合的交集保存到一个新的键),不用多久内存限制就会被这个内存使用量超越。

8、Redis怎么尽量降低内存使用?

参考建议:

1)选择合适Redis数据结构,这是最重要的;

2)可以用zipList替代大量的key-value

3)使用淘汰策略淘汰不怎么使用的key-value

9、Redis为什么要避免使用合并操作?

这是因为Redis中的值通常比较大,传输合并操作会造成性能瓶颈,数据类型也是语义复杂的,Redis数据模型也并不提倡这么做。

10、Redis中的管道有什么用?

Redis中的管道技术是指: Redis Pipelining,用于提高Redis服务的性能。

管道技术可以在服务端还未响应时,客户端仍然可以继续向服务端发送请求,即客户端可以发送多个命令到服务端,而不用等待服务器的响应,客户端会在最后再一次性读取所有服务端的响应。

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

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

相关文章

一文读懂页面布局

一. 前端布局 谈到浏览器页面,我们肯定是希望页面越美观越好,这样才能吸引用户点击。页面美观就自然需要用到各种布局,好的布局不仅能提高用户体验感留住用户,还能提高维护的效率。本文就列举一下常用的前端布局,并配上…

【MATLAB教程案例65】深度学习网络建模2,通过deepNetworkDesigner工具箱实现

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 1.软件版本 2.分类识别数据库的应用

第八章练习题-2

第七题 答案 package com.hspedu.homework.homework07;public class HomeWork07 {public static void main(String[] args) {} } class Test{ //父类String name "Rose";Test(){System.out.println("Test");}Test(String name){this.name name;} } clas…

国考省考行测:标题选择题,仍然是考主旨,借助关联词、主体、结构、或对策分析法找正确的标题,通过偏颇,片面,无关,过重,空泛的方法排除错误选项

国考省考行测:标题选择题,仍然是考主旨,借助关联词、主体、结构、或对策分析法找正确的标题,通过偏颇,片面,无关,过重,空泛的方法排除错误选项 2022找工作是学历、能力和运气的超强…

[附源码]Python计算机毕业设计Django校园商铺

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

44_外部SRAM实验

目录 IS62WV51216简介 IS62WV51216框图 IS62WV51216读时序 IS62WV51216写时序 FSMC简介 FSMC寄存器介绍 硬件连接图 实验源码 IS62WV51216简介 IS62WV51216ISSi (Integrated Silicon Solution,Inc)公司生产的一颗16位宽512K (512*16,即1M字节)容量的CMOS静态内存(SRAM…

现在市场上IT人才大量涌现,现在开始学习编程,以后会有前途吗?

现在市场上IT人才大量涌现,如果我现在开始学习编程,以后会有前途吗?答案是肯定的,一定有前途而且前途远大!下面分析一下具体原因: 未来一定是信息化社会 当今我们正处在第三次信息化浪潮中,这次…

P4 PyTorch 合并与分割

前言: 目录 cat stack split chunk一 cat(合并) df torch.cat([df1,df2,df3],dim0) 要合并的维度可以不相等,其它维度大小必须一样 应用场景: 比如有两个统计数据[class,students,scores] A [4,32,8], 4个…

架构师必读 —— 逻辑模型(5)

宏观在先,微观在后 如果只看局部判断问题,就会阻碍逻辑思考。首先,为了不迷失整体,就要从宏观捕捉事物。宏观是指整体和概要,微观是指局部、细节、个别的部分。我们要首先从宏观上考虑,再逐步展开至微观。 …

“ 这片绿茵场从不缺乏天才,努力才是最终的入场券——梅西 ”

前言 想了又想还是忍不住想发布一篇文章来纪念一下2022年的卡塔尔世界杯,这伟大的诸神黄昏之战。4年一届的世界杯像是一把衡量时间的坐标,正所谓青春不过几届世界杯!2014巴西世界杯在上初一,2018俄罗斯世界杯在上高二,…

使用Easyswoole 搭建简单的Websoket服务

步骤1 修改配置文件MAIN_SERVER.SERVER_TYPE为EASYSWOOLE_WEB_SOCKET_SERVER 如dev.php <?php use EasySwoole\Log\LoggerInterface;return [SERVER_NAME>"EasySwoole",MAIN_SERVER>[LISTEN_ADDRESS>0.0.0.0,PORT>19501,"SERVER_TYPE&quo…

新鲜事儿!只有AI作品的电影节;酷~AI纹身设计师;ChatGPT的接生婆RLHF;Wayve自动驾驶模型MILE… | ShowMeAI资讯日报

&#x1f440;日报合辑 | &#x1f3a1;AI应用与工具大全 | &#x1f514;公众号资料下载 | &#x1f369;韩信子 &#x1f4e2; 『AI Film Festival』只接受AI作品的电影节&#xff0c;一万美元奖金花落谁家&#xff1f; https://aiff.runwayml.com/ Runway ML公司12月7日推…

前端开发--JavaScript基础知识点大全

前端开发--JavaScript基础知识点大全JavaScript 基础1、JavaScript介绍2、变量3、数据类型4、类型转换5、 运算符6、语句6.1 表达式和语句6.2 分支语句6.3 循环语句7、数组8、函数9、对象10、更多JavaScript 基础 1、JavaScript介绍 JavaScript是一种运行在客户端&#xff08…

一个桌面弹幕软件,用来记单词刚刚好

弹幕单词是一款桌面弹幕软件&#xff0c;它可以把词条以弹幕的形式呈现在桌面上&#xff0c;不管这个词条是英语单词还是中文成语&#xff0c;只要结合了相关资料&#xff0c;就非常方便的使用鼠标右键查看此弹幕的相关资料&#xff0c;下面我们来看看这个软件如何使用吧 快速入…

大学生家乡主题甘肃介绍网页代码 dreamweaver网页设计作业制作 WEB静态网页作业模板 dw个人网页作业成品

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

前端vue面试题集锦1

Vue.extend 作用和原理 官方解释&#xff1a;Vue.extend 使用基础 Vue 构造器&#xff0c;创建一个“子类”。参数是一个包含组件选项的对象。 其实就是一个子类构造器 是 Vue 组件的核心 api 实现思路就是使用原型继承的方法返回了 Vue 的子类 并且利用 mergeOptions 把传入…

使用Mock技术帮助提升测试效率的小tips,你知道几个?

Mock是什么&#xff1f; 我给你描述一下这几个场景&#xff0c;你看看是不是熟悉的呢&#xff1f; 测试一个业务模块&#xff0c;这个业务模块中有几个接口对接到了第三方&#xff0c;因为第三方延期交付&#xff0c;导致项目延期&#xff0c;我又背锅了 我想测试前端页面字体…

作为测试人员,你需要掌握哪些,常用软件测试工具?

前言 作为软件测试人员&#xff0c;你最常用到的测试工具都有哪些呢&#xff1f;本文总结了测试过程中常用的工具&#xff0c;希望对从业人员日常工作有所助益&#xff01; 包含工具内容 测试管理工具 连接服务器 抓包工具 接口测试工具 app自动化工具 性能测试工具 持续集成…

[附源码]计算机毕业设计Node.js橙光公司网站设计论文(程序+LW)

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

nodejs+vue067高校 校园疫情防控系统

录 1 绪论 1 1.1 研究背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统关键技术 3 2.3 MYSQL数据库 4 2.4 B/S结构 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2经济可行性 5 3.1.3操作可行性 5 3.2 系统性能分析 5 3.3 …