Redis面试常见问题
Redis中的Lua脚本到底能不能保证原子性?
Redis中Lua脚本的执行,可以保证并发编程中不可再拆分的这个原子性,但是没有保证数据库ACID中要么都执行要么都回滚的这个原子性。Lua脚本执行过程中命令产生错误,是不会回滚的,后续命令不会执行。
在数据库中的原子性,确实是一个不可拆分的工作单元,要么都执行,要么都不执行。因为事务可以Commit、也可以Rollback。
在并发编程中,我们把一个或者多个操作在 CPU 执行的过程中不被中断的特性称为原子性。
redis为什么快?
-
操作基于内存
-
IO多路复用
-
单线程操作:省去多线程时CPU上下文会切换的时间
Redis 单线程指的是网络请求模块使用了一个线程,即一个线程处理所有网络请求,其他模块该使用多线程,仍会使用了多个线程。
-
数据结构。
redis为什么设计16384槽
Normal heartbeat packets carry the full configuration of a node, that can be replaced in an idempotent way with the old in order to update an old config. This means they contain the slots configuration for a node, in raw form, that uses 2k of space with16k slots, but would use a prohibitive 8k of space using 65k slots.At the same time it is unlikely that Redis Cluster would scale to more than 1000 mater nodes because of other design tradeoffs.So 16k was in the right range to ensure enough slots per master with a max of 1000 maters, but a small enough number to propagate the slot configuration as a raw bitmap easily. Note that in small clusters the bitmap would be hard to compress because when N is small the bitmap would have slots/N bits set that is a large percentage of bits set.
- 如果槽位为65536,发送心跳信息的消息头达8k(65536÷8÷1024=8kb),发送的心跳包过于庞大。所以槽位(16394÷8÷1024=2kb)比较合适。
- redis的集群主节点数量基本不可能超过1000个。
- 槽位越小,节点少的情况下,压缩率高
热key问题
概念:在Redis中,热key问题指的是某个key被频繁访问,导致该key所在的数据结构增长过大,进而导致Redis性能下降甚至宕机。
对于热key的处理,主要在于事前预测和事中解决。
在事中解决方面,主要可以考虑,热点key拆分、多级缓存、热key备份、限流等方案来解决。
LRU、LFU
LRU指的是最近最少使用(Least Recently Used),是一种缓存淘汰策略。在实现缓存时,为了让缓存的命中率更高,我们需要选择合适的缓存淘汰策略。LRU的具体做法是将最近最少使用的缓存块置换出去,即将最久未被访问的缓存块淘汰掉。
LFU是Least Frequently Used的缩写,意为最不经常使用。LFU算法是一种用于缓存管理的算法,它根据数据项在最近一段时间内被访问的频率来确定哪些数据应该从缓存中删除以腾出空间。当缓存达到容量限制时,LFU算法会优先删除被访问次数最少的数据项。与其他缓存替换算法相比,LFU算法可以更加高效地利用缓存空间。
Redis怎么保证数据不丢失
- 持久化:redis支持AOF和RDB、混合的持久化方式,可以保证数据不丢失。
- 集群:有主从模式,哨兵模式和cluster集群模式集群来保证应用的可靠性,保证数据不丢失。
相关文章:
Redis面试常见问题
Redis中的Lua脚本到底能不能保证原子性? Redis中Lua脚本的执行,可以保证并发编程中不可再拆分的这个原子性,但是没有保证数据库ACID中要么都执行要么都回滚的这个原子性。Lua脚本执行过程中命令产生错误,是不会回滚的,…...
浏览器触发下载Excel文件-Java实现
目录 1:引入maven 2:代码实现 3.导出通讯录信息到Excel文件 4.生成并下载Excel文件部分解释 1:引入maven 添加依赖:首先,在你的项目中添加EasyExcel库的依赖。你可以在项目的构建文件(如Maven的pom.xml)中添加以下依赖项:<dependency><groupId>com.alib…...
每日汇评:黄金在上涨趋势恢复之前面临修正性回调的风险
周三早些时候,金价触及六个月来的最高水平,接近 2050 美元; 在美联储转向鸽派立场后,美元和美债双双下跌; 日线图上的超买RSI指标警示多头,但即将到来的金十字图形使上行保持不变; 金价在周三亚…...
【开源】基于Vue.js的大学计算机课程管理平台的设计和实现
项目编号: S 028 ,文末获取源码。 \color{red}{项目编号:S028,文末获取源码。} 项目编号:S028,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2…...
c++环形队列
c环形队列 c环形队列 c环形队列 #pragma once#include <iostream> #include <vector>/// <summary> /// - 环形队列 /// - 不是线程安全 /// </summary> /// <typeparam name"T"></typeparam> template <typename T> cla…...
智能客服核心技术——预测会话与答案生成
1.信息检索 2. 句型模板匹配标准问题生成答案 3.根据知识图谱推理得到答案...
C语言——计算Fibonacci数列
方式一 for循环 (20位) #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int n;int a[20]{1,1};for ( n 1; n <20; n){a[n]a[n-2]a[n-1];}for ( n 0; n < 20; n){if(n%50)printf("\n");printf("%12d ",a[n]);}return 0; …...
【ASP.NET CORE】.NET 6.0 NET CORE MVC连接SQLSERVER数据库
项目装NuGet包,具体版本如下 在appsettings.json中,添加连接字符串 代码如下: "ConnectionStrings": {"MVCSqlContext": "Serverlocalhost;DatabaseAddress;User IDsa;Passwordsa;TrustServerCertificatetrue&q…...
filebeat日志收集工具
1、优缺点 filebeat收集的数据可以发往多个主机,即远程收集 filebeat无法实现数据过滤,一般结合logstash的数据过滤一块使用 2、远程收集多主机的日志实验 实验目的:一体化查看日志 实验条件: 主机名 服务器 IP地址 组件 …...
一文例说嵌入式 C 程序的内聚和耦合
1 - 原理篇 低耦合,是指模块之间尽可能的使其独立存在,模块之间不产生联系不可能,但模块与模块之间的接口应该尽量少而简单。这样,高内聚从整个程序中每一个模块的内部特征角度,低耦合从程序中各个模块之间的关联关系…...
python-爬虫(可直接使用)
爬虫(Web Scraping)是指通过编程自动化地获取互联网上的信息的过程。爬虫的目的通常是从网页中抓取数据,进行数据分析、处理或展示。以下是爬虫的基本流程和一些重要的概念: 爬虫基本流程: 确定目标: 确定要…...
Moonbeam生态项目分析 — — 去中心化交易所Beamswap
流动性激励计划Moonbeam Ignite是帮助用户轻松愉快体验Moonbeam生态的趣味活动。在Moonbeam跨链连接的推动下,DeFi的各种可能性在这里爆发。DeFi或许不热门,但总有机会捡漏,了解Monbeam生态项目,我们邀请Moonbeam大使分享他们的研…...
自研Xilinx高性能PCIe多通道DMA控制器
1 介绍 基于PCI Express Integrated Block,Multi-Channel PCIe QDMA Subsystem实现了使用DMA地址队列的独立多通道、高性能Continous或Scather Gather DMA,提供FIFO/AXI4-Stream用户接口。 基于PCI Express Integrated Block,Multi-Channel…...
人工智能原理复习--知识表示(二)
文章目录 上一篇产生式表示法推理方式 结构化表示语义网络语义网络表示知识的方法和步骤应用题目 框架表示法下一篇 上一篇 人工智能原理复习–知识表示(一) 产生式表示法 把推理和行为的过程用产生式规则表示,所以又称基于规则的系统。 产…...
【SpringBoot篇】登录校验 — JWT令牌
文章目录 🌹简述JWT令牌⭐JWT特点 🌺JWT使用流程🛸JWT令牌代码实现🍔JWT应用 🌹简述JWT令牌 JWT全称为JSON Web Token,是一种用于身份验证的开放标准。它是一个基于JSON格式的安全令牌,主要用于…...
leetcode每日一题34
89.格雷编码 观察一下n不同时的格雷编码有什么特点 n1 [0,1] n2 [0,1,3,2] n3 [0,1,3,2,6,7,5,4] …… 可以看到nk时,编码数量是nk-1的数量的一倍 同时nk编码的前半部分和nk-1一模一样 nk编码的最后一位是2k-1 后半部分的编码是其对应的前半部分的对称的位置的数字…...
王者荣耀游戏制作
1.创建所需要的包 2.创建怪物类 bear package beast;import wangzherogyao.GameFrame;public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("img/bear.jpg");width 85;height 112;setDis(65);}} b…...
springboot post添加URL添加参数
出现 MissingServletRequestParameterException: Required String parameter pageNumber is not present 异常的原因是在请求中没有提供名为 pageNumber 的参数。 请确保发送 POST 请求时,在请求的 URL 或请求体中提供了名为 pageNumber 的参数,以满足方…...
『 MySQL数据库 』插入查询结果
文章目录 🎟️ 前言🎟️ 创建一张结构相同的表🎟️ 表内插入查询结果🎫 对表内数据进行去重🎫 配合ORDER BY排序后以及LIMIT分页对数据进行插入 🎟️ 前言 在MySQL数据库中不仅可以直接根据字段类型等对数据…...
【笔记】小白学习电路维修
学习视频(b站):从0开始学电路 从0开始学电路维修 p1 黄色长方体元件P2 故障率最高的元件p3带芯铜丝线圈是什么区分电感和变压器接入电路分析: p4 交流和直流分界线整流桥接线整流桥故障判断 带色环的不一定是电阻 p1 黄色长方体元…...
新手也能懂的SSRF漏洞实战:用iwebsec靶场复现文件读取与内网探测
从零开始掌握SSRF漏洞:iwebsec靶场实战指南1. 认识SSRF漏洞的本质想象一下,你正在一家高档餐厅点餐,服务员承诺可以帮你从任何地方获取食材——包括隔壁竞争对手的厨房。SSRF(Server-Side Request Forgery)漏洞就像这个…...
51单片机驱动ST7735S彩屏避坑指南:从5秒刷屏到流畅贪吃蛇的优化实战
51单片机驱动ST7735S彩屏性能优化实战:从卡顿到流畅游戏的蜕变之路当一块128x160分辨率的ST7735S彩屏遇上传统的51单片机,这种组合看似矛盾却又充满挑战。许多开发者初次尝试时会发现,原本在STM32等平台上运行流畅的显示驱动,移植…...
Veo 2胶片质感生成器失效?——深度解析Color Science v2.3内核中被屏蔽的Cinematic Grain Injection层
更多请点击: https://kaifayun.com 第一章:Veo 2胶片质感生成器失效现象全景透视 近期大量用户反馈,Veo 2 胶片质感生成器在调用 generate_film_effect() 接口后返回空纹理、纯灰帧或 HTTP 503 Service Unavailable 错误,且该问题…...
为什么软件开发偏爱 Linux?深度剖析 Linux 相较于 Windows 的核心优势
引言 在软件开发的世界里,一个有趣的现象是:无论是大型互联网公司的服务器集群,还是资深程序员的个人开发机,Linux 操作系统的身影无处不在。与之形成鲜明对比的是,尽管 Windows 在个人消费市场占据绝对主导地位&…...
基于可解释机器学习的城市人口流动空间降尺度分析实践
1. 项目概述:从宏观到微观,解码城市脉搏在城市的肌理中,人口的流动如同血液的循环,承载着经济活力、社会互动与空间结构的全部信息。无论是城市规划师优化公交线路,还是商业分析师评估店铺选址,亦或是公共卫…...
为什么鸿蒙 App 最终都会走向状态驱动?
子玥酱 (掘金 / 知乎 / CSDN / 简书 同名) 大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚…...
Raspberry Pi Debug Probe:RP2040嵌入式开发的调试利器与实战指南
1. 项目概述:为什么你需要一个Raspberry Pi Debug Probe?如果你玩过树莓派Pico或者任何基于RP2040芯片的开发板,肯定遇到过这样的场景:写好的代码,点一下“上传”,然后……就没有然后了。板子上的LED没按你…...
INT8量化下TVA注意力对齐精度保障方案
重磅预告:本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…...
免费抓包工具选型指南:Wireshark、Fiddler、mitmproxy、Charles实战对比
1. 抓包工具不是“黑科技”,而是网络世界的显微镜很多人第一次听说“抓包”,脑子里立刻浮现出黑客电影里满屏滚动的绿色代码、键盘敲得噼啪作响、三秒破解银行防火墙的画面。其实完全不是这样——抓包(Packet Capture)本质上就是把…...
Claude端到端测试设计终极清单:覆盖17类非功能需求(含延迟敏感度分级、幻觉熔断阈值、多轮对话状态持久化验证)
更多请点击: https://kaifayun.com 第一章:Claude端到端测试设计的演进逻辑与核心范式 Claude端到端测试并非静态产物,而是随模型能力边界拓展、交互场景复杂化及可靠性要求升级而持续演化的工程实践。其演进逻辑根植于三个关键张力…...
