当前位置: 首页 > news >正文

Redis#架构师面试题

1、Redis锁存在哪些问题及如何解决?

1、死锁问题

加过期时间设定

2、原子性问题

通过“set…nx...ex…”命令,将加锁、过期命令编排到一起,它们是原子操作了,可以避免死锁。

3、释放其他线程的锁问题

当过期时间设置小于线程执行时间时,因锁过期被其他线程重新获取,前面的线程删掉的是其他线程的锁。

解决:

  • 通过在value添加线程标识来解决,释放锁的时候进行线程标识判断,只删除属于自己的锁。这里又存在了原子性的问题,可以通过lua脚本或者直接使用Redisson框架解决。
  • 使用看门狗进行锁续期

4、可重入锁问题

redisson组件已经解决。

5、锁竞争问题

并发量大的时候,会降低系统并发性能。

解决:

  • 锁细化;
  • 乐观锁;
  • 读写锁;

2、缓存和数据库的数据一致性怎么解决?

1、先删缓存,再删数据库,再延迟(避免删除之前读到数据老数据的若干线程还没有将结果写入缓存,此时就会出现无效删除删一次缓存;

2、先删数据库,再删缓存(如果删除失败支持重试(可以发送给MQ))

删除缓存的操作可以通过cannal监听数据更新问题通知springboot应用进行删除来实现。

总结:推荐使用方法2,因为方法1中的延迟删除也可能会失败。相对来说方法2更简单有效。

相关文章:

Redis#架构师面试题

1、Redis锁存在哪些问题及如何解决? 1、死锁问题 加过期时间设定 2、原子性问题 通过“set…nx...ex…”命令,将加锁、过期命令编排到一起,它们是原子操作了,可以避免死锁。 3、释放其他线程的锁问题 当过期时间设置小于线程…...

关于#define的使用方法总结

文章目录 #define 预处理指令一、#define宏定义二、查看预处理文件三、#define 的使用方法四、C语言宏中“#”和“##”的用法五、常见的宏定义总结六、常考题目 #define 预处理指令 #define 是 C 和 C 编程语言中的预处理指令,用于定义宏(macro&#xf…...

Unity顶点动画(Vertex Animation):创造动态视觉效果

在Unity中,顶点动画(Vertex Animation)是一种强大的技术,它允许开发者直接在顶点级别上操作和变形网格,从而实现各种动态视觉效果。顶点动画不依赖于骨骼绑定,因此非常适合模拟布料、流体、面部表情等复杂的动画效果。本文将探讨顶…...

WSL for Windows

1、安装 超详细Windows10/Windows11 子系统(WSL2)安装Ubuntu20.04(带桌面环境)_wsl安装ubuntu20.04-CSDN博客https://blog.csdn.net/weixin_44301630/article/details/122390018 注意,安装之后首次启动 Ubuntu 时&…...

Matlab freqz 代码简单实现

相关代码打开matlab源码也可以看到,这里做了简单实现,与源码并不完全一样。 实现代码 [h2 w2] freqzfir(data); [h1 w1] freqz(data); h2h2; h12 [h1, h2];[h4 w4] freqziir(b,a, 2001,true); [h3 w3] freqz(b,a, w4, whole); h4 h4; h34 h…...

待办app哪款好?高效待办软件推荐

在快节奏的现代生活中,一款高效的待办事项管理软件对于提升工作效率和个人时间管理至关重要。面对市场上众多的待办app,哪款才是你的最佳选择呢?经过深入体验和对比,我发现敬业签这款高效待办软件是个不错的选择。 敬业签的快速记…...

【OSCP系列】OSCP靶机-BTRsys-2.1(原创)

OSCP系列靶机—BTRsys-2.1 原文转载已经过授权 原文链接:Lusen的小窝 - 学无止尽,不进则退 (lusensec.github.io) 一、主机发现 二、端口扫描 1、快速扫描 2、全端口扫描 3、服务系统探测 4、漏洞探测 80端口扫到了一些目录,有wordpress框…...

攻坚克难岁月长,自主腾飞世界强——回顾近代中国数据库的发展与飞跃

前言 最近看了《中国数据库前世今生》纪录片,感触颇深,也是一直在思考到底该用何种方式起笔来回顾这段筚路蓝缕却又充满民族自豪感的历程。大概构思了一周左右吧,我想,或许还是应该从那个计算机技术在国内刚刚萌芽的年代开始讲起…...

WEB前端12-axios基础

Vue2-axios基础 1.axios基本概念 在现代的前端开发中,处理网络请求是至关重要的一部分。Axios 是一个流行的基于 Promise 的 HTTP 客户端,它可以在浏览器和 Node.js 环境中使用。它的设计简单易用,支持并行请求、拦截器、CSRF 防护等特性&a…...

Ubuntu 防火墙设置

目录 1. 安装防火墙 2. 开启和关闭防火墙 3. 开放端口和服务规则 4. 关闭端口和删除服务规则 5. 查看防火墙状态 1. 安装防火墙 如果已经安装就忽略 # 安装ufw(Uncomplicated Firewall),这是Ubuntu上管理防火墙的一个简单工具 sudo ap…...

JL 跳转指令的理解

一般情况下,JU 和 JC 是最常见的跳转指令;但有时会用到JL 指令,JL 说起来更像是一组指令,类似C,C# 语言中的 switch case 语句,但是有个明显的不同,前者的判断条件可以是任意合理数字,后者范围…...

vue大屏展示组件库datav

主要用于构建大屏数据展示页面,具有多种类型组件可供使用。详情参考 datav官网 一、安装 npm 安装 npm install jiaminghi/data-viewyarn安装 yarn add jiaminghi/data-view二、使用 在main.js中注册为全局组件 import dataV from jiaminghi/data-view Vue.us…...

Vue.js 与 Ajax(vue-resource)的集成应用

Vue.js 与 Ajax(vue-resource)的集成应用 Vue.js 是一款流行的前端JavaScript框架,以其简洁、灵活和高效的特点而受到开发者的喜爱。在实际开发中,与后端服务的通信是不可或缺的,而Ajax技术是实现这一功能的关键。在V…...

【讲解下AI Native应用中的模型微调】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...

【SOC 芯片设计 DFT 学习专栏 -- DFT DRC规则检查】

请阅读【嵌入式及芯片开发学必备专栏】 请阅读【芯片设计 DFT 学习系列 】 如有侵权,请联系删除 转自: 芯爵ChipLord 2024年07月10日 12:00 浙江 文章目录 概述DRC的概念Tessent DRC检查的概述时钟相关检查扫描相关检查BIST规则检查预DFT时钟规则检查 …...

深度学习:如何计算感受野

感受野(Receptive Field)是卷积神经网络(CNN)中的一个重要概念,用于描述输入图像中的一个像素在输出特征图中影响的区域大小。在设计和理解卷积神经网络时,计算感受野有助于理解网络如何对输入数据进行处理…...

【状语从句】

框架 概念,特点主将从现连接词时间条件地点结果方式让步原因目的比较省略倒装 解读 1【概念,特点】 一个完整的句子,去修饰另一个完整句子中的动词,称为状语从句;特点:从句完整,只用考虑连接词是…...

阿里云服务器安装Anaconda后无法检测到

前言 问题如标题所言,就是conda -V验证错误,不过后来发现其实就是虽然安装时,同意了写入环境变量,但是其实还没有写入,需要手动写入。下面也会重复一遍安装流程。 安装 到[Anaconda下载处](Download Now | Anaconda)查…...

在没有源程序的情况时,如何通过控制鼠标按钮控制电脑exe程序?

有时候想控制第三方软件,但是没有源程序,可以控制鼠标键盘自动操作软件达到我们想要的目的 首先建一个功能类包含窗口控制,鼠标控制和输入控制等 csharp using System; using System.Collections.Generic; using System.Linq; using System.…...

如何排查GD32 MCU复位是由哪个复位源导致的?

上期为大家讲解了GD32 MCU复位包括电源复位和系统复位,其中系统复位还包括独立看门狗复位、内核软复位、窗口看门狗复位等,在一个GD32系统中,如果莫名其妙产生了MCU复位,如何排查具体是由哪个复位源导致的呢? GD32 MC…...

MinerU-Diffusion:文档OCR解码提速3.2倍新方案

MinerU-Diffusion:文档OCR解码提速3.2倍新方案 【免费下载链接】MinerU-Diffusion-V1-0320-2.5B 项目地址: https://ai.gitcode.com/OpenDataLab/MinerU-Diffusion-V1-0320-2.5B 导语 MinerU-Diffusion框架通过将文档OCR重构为逆渲染问题,采用并…...

Anything V5服务优化指南:如何调整参数获得最佳生成效果

Anything V5服务优化指南:如何调整参数获得最佳生成效果 1. 理解Anything V5的核心参数 1.1 分辨率设置对生成效果的影响 Anything V5支持多种分辨率设置,但不同分辨率会直接影响生成速度和质量: 512x512:默认设置&#xff0c…...

Qwen3.5-4B模型网络协议分析应用:模拟客户端与解析通信数据

Qwen3.5-4B模型网络协议分析应用:模拟客户端与解析通信数据 1. 网络协议分析的AI新思路 网络协议分析一直是运维工程师和安全研究人员的日常工作重点。传统方法需要人工查阅RFC文档、编写测试代码、分析抓包数据,整个过程耗时费力。Qwen3.5-4B模型的出…...

音频处理必备:5分钟搞懂IIR和FIR滤波器的区别与应用场景

音频处理必备:5分钟搞懂IIR和FIR滤波器的区别与应用场景 在音乐制作和音频工程领域,滤波器是塑造声音的核心工具之一。无论是调整均衡、消除噪声还是创造特殊音效,都离不开对IIR和FIR这两类滤波器的深入理解。许多刚入门的音频工程师常常困惑…...

用Multisim/TINA-TI仿真带你玩转一阶到二阶有源滤波器:从传递函数到实际频响曲线全验证

从仿真到实践:一阶与二阶有源滤波器的可视化验证指南 在模拟电路设计中,滤波器是信号处理的基础模块。许多初学者虽然能推导传递函数,却难以将理论公式与实际电路行为建立直观联系。本文将用Multisim和TINA-TI两款主流仿真工具,带…...

YOLO X Layout中小企业应用:无需训练,开箱即用的文档结构理解AI工具

YOLO X Layout中小企业应用:无需训练,开箱即用的文档结构理解AI工具 1. 引言:让文档理解变得简单高效 在日常办公中,我们经常需要处理各种文档——扫描的合同、拍摄的表格、电子版报告。传统方式需要人工逐个识别文档中的文字、…...

OptiScaler:打破显卡技术壁垒——跨平台玩家的AI超分辨率解决方案

OptiScaler:打破显卡技术壁垒——跨平台玩家的AI超分辨率解决方案 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler 当你…...

短效与动态代理IP区别,时效特性是关键

短效代理IP和动态代理IP最直观、最核心的区别,在于IP存活时长的时效特性,这也是两者适配不同场景的关键的原因。很多用户选型失误,本质是没有吃透两者的时效差异,导致所选代理无法匹配自身业务需求,出现IP失效快、资源…...

vLLM PD分离架构在昇腾910B上的性能实测:对比单卡部署,吞吐量到底提升了多少?

vLLM PD分离架构在昇腾910B上的性能突破:实测数据与技术解析 当大模型推理从实验室走向生产环境,吞吐量与延迟指标直接决定了商业可行性。传统同构部署方案中,Prefill(首字生成)与Decode(后续生成&#xff…...

2023款惠普战66六代笔记本Win11重装教程:从U盘制作到跳过联网

2023款惠普战66六代笔记本Win11重装全流程指南 最近帮朋友折腾一台新入手的惠普战66六代笔记本,发现这款商务本在重装系统时有些细节需要特别注意。尤其是Win11的强制联网激活机制和BitLocker加密的坑,稍不注意就会让整个重装过程卡壳。下面把我实测可用…...