Redis面试篇
目录
Redis面试篇
1.什么是Redis?作用是什么?
2.什么是缓存穿透、缓存击穿、缓存雪崩
2.1缓存穿透
2.2缓存击穿
2.3缓存雪崩
3.redis如何持久化
1. RDB(快照存储)
2. AOF(追加日志)
4.Redis 的过期策略和内存淘汰策略
4.1 Redis 过期策略(如何删除过期数据)
4.2Redis内存淘汰策略
5.Redis的分布式锁
5.1 为什么需要分布式锁?
5.2 Redis 分布式锁的基本实现
5.3分布式锁的优化
Redis面试篇
1.什么是Redis?作用是什么?
Redis(Remote Dictionary Server)是一个基于内存的高性能 NoSQL 数据库,通常用于缓存、分布式存储 和 消息队列。它支持键值(key-value)存储,并且可以存储字符串、哈希、列表、集合、有序集合等多种数据结构
Redis 的主要作用
-
缓存(提高系统性能)
-
存储热点数据,减少数据库访问压力,提高查询速度。
-
例如:存储用户信息、文章内容、商品信息等,避免每次都查数据库。
-
-
分布式锁(保证并发安全)
-
在高并发场景下,多个线程/进程可能同时访问一个资源,Redis 的 SETNX、Redisson 可以实现分布式锁,防止数据冲突。
-
例如:限流、秒杀活动、库存扣减。
-
-
计数器和限流(防止系统被滥用)
-
适用于访问量统计、限流(如接口请求次数限制)。
-
例如:某接口 1 分钟内最多访问 10 次,超过就返回错误。
-
-
Session 共享(解决分布式会话问题)
-
在分布式系统中,多个服务器需要共享 Session(如用户登录状态),可以使用 Redis 统一存储。
-
-
消息队列(异步处理任务)
-
Redis 的
List
和Pub/Sub
可用于实现消息队列,提高系统吞吐量。 -
例如:订单系统 → 消息队列 → 异步处理支付、物流。
-
-
排行榜(游戏、社交场景)
-
Redis 的 有序集合(Sorted Set) 可以存储分数排名,如游戏积分榜、热搜榜。
-
2.什么是缓存穿透、缓存击穿、缓存雪崩
2.1缓存穿透
缓存穿透是指客户端频繁访问一些不存在的缓存数据,由于缓存中没有这些数据的记录,每次请求都直接访问数据库,导致数据库压力增大,但是数据库中也不存在(就是指大量请求不存在的资源,大量请求不存在的资源大概率就是被黑客攻击了......)
如何解决? 缓存空值:当查询一个不存在的key时,先访问缓存,缓存中没有访问数据库,数据库中也没有用的话就用redis做一个空标记 ,将空结果也写入缓存,并设置一个较短的过期时间 。下次再遇到相同的请求时判断是否存在空标记 key,存在这个空标记则直接返回缓存中的空值,避免再次查询数据库。(但这种标记过多的话会消耗资源,不推荐)
使用分布式锁:当请求发现缓存不存在时,可以使用分布式锁机制,避免多个相同的请求同时访问数据库。这样,只让一个请求去加载数据,其他请求等待,从而减轻数据库压力.
布隆过滤器:布隆过滤器是一种数据结构,在查询缓存和数据库之前,利用布隆过滤器来存储这个 key ,判断key是否存在,存在则直接放行.如果该key不存在则直接被拦截返回,不必查询缓存或数据库,节约存储空间。
对疯狂请求不存在数据的ip进行拉黑
缓存穿透无敌解决方法(能用上的方法全用上 ^_^ ) 布隆过滤器+空对象+分布式锁:
1.当缓存不存在时,先通过布隆过滤器进行初步筛选,
2.如果布隆过滤器判定数据可能存在,则检查是否存在空对象缓存。
3.如果空对象缓存不存在,再使用分布式锁防止多个相同请求同时访问数据库。
4.最后,如果数据库查询结果为空,将结果缓存为空对象,以防后续重复查询
2.2缓存击穿
缓存击穿是指某个热点数据在缓存中失效的瞬间有大量的并发请求同时访问该数据,由于该数据在缓存中失效,大量请求同时访问数据库,造成数据库压力骤增。这种情况通常发生在热点数据或访问频繁的数据上。
如何解决? 互斥锁机制:当缓存失效时,通过加锁的方式保证只有一个线程去查询数据库并更新缓存,其他线程等待缓存更新完成后再获取数据。
缓存不设置过期时间:对于极为重要的热点数据,可以设置其缓存永不过期,同时后台启动线程定期刷新该缓存,但如果重要的热点数据过多,不推荐此方法
监控热门数据,实时调整key的过期时长
2.3缓存雪崩
redis中大量key同时过期,导致大量请求直接访问数据库,瞬间引发数据库压力激增,甚至导致数据库崩溃。
如何解决? 缓存的过期时间使用随机值,这样减少了大量缓存同时过期的情况.
实时调整,监控哪些数据是热门数据,实时的调整key的过期时长.
使用锁机制,未获取锁的请求只能进行等待
3.redis如何持久化
Redis 是基于内存的数据库,但为了防止数据丢失,它提供了两种持久化机制:
-
RDB(Redis Database)—— 快照存储
-
AOF(Append Only File)—— 追加日志存储
1. RDB(快照存储)
原理:Redis 以二进制快照的形式将数据库的整个数据保存到磁盘文件(.rdb
)中,在发生故障时可以恢复。
特点:
✅ 适用于大规模数据的定期备份,恢复速度快。 ✅ 占用空间小,存储效率高。 ❌ 如果 Redis 意外崩溃,则最后一次快照之后的数据可能丢失。
2. AOF(追加日志)
原理:Redis 记录所有的写操作命令(如 SET
、DEL
),并将它们以日志形式(.aof
文件)追加到磁盘,Redis 重启时可重放这些命令恢复数据。
特点:
✅ 数据安全,即使 Redis 意外崩溃,AOF 也能最大限度减少数据丢失。 ✅ 适用于高实时性数据(例如:秒杀、交易系统)。 ❌ 日志文件较大,可能会影响 Redis 启动速度。
4.Redis 的过期策略和内存淘汰策略
Redis 作为内存数据库,存储空间是有限的,因此需要过期策略和内存淘汰策略来管理数据。
4.1 Redis 过期策略(如何删除过期数据)
Redis 允许设置键的过期时间(TTL),当键过期后,就会被删除。Redis 提供了 三种删除策略:
(1)定期删除(默认)
机制:Redis 每 100ms 进行一次过期键的扫描,随机检查一部分过期键,并删除过期的键。
✅ 优点:减少了系统负担,不会影响 Redis 性能。 ❌ 缺点:如果过期键过多,可能不会一次性删除完,导致内存占用增加。
(2)惰性删除
机制:当客户端访问一个键时,Redis 发现它已经过期,就会立刻删除这个键。
✅ 优点:仅在访问时删除,减少 CPU 负担。 ❌ 缺点:如果某些键一直不被访问,它们可能不会被删除,从而占用内存。
(3)定期删除 + 惰性删除(默认策略)
Redis 默认使用定期删除 + 惰性删除,既能避免频繁扫描,也能确保访问时自动删除过期键。
4.2Redis内存淘汰策略
如果 Redis 占满了可用内存,就需要删除一些数据来释放空间。Redis 提供了6 种内存淘汰策略:
策略名称 | 说明 | 适用场景 |
---|---|---|
noeviction(默认) | 不删除任何数据,直接报错(写入失败) | 适合持久化数据,不希望丢失 |
allkeys-lru | 删除最久未使用的键(全局 LRU) | 适用于缓存,需要高命中率 |
volatile-lru | 删除设置了过期时间的最久未使用键 | 适用于缓存+持久化混合场景 |
allkeys-random | 随机删除任何键 | 适用于无固定热点的场景 |
volatile-random | 只随机删除有过期时间的键 | 适用于部分数据需要持久化 |
volatile-ttl | 优先删除过期时间最短的键 | 适用于定期更新数据的场景 |
5.Redis的分布式锁
Redis 的分布式锁是一种基于 Redis 实现的分布式并发控制机制,用于保证多个进程或线程在分布式环境下对共享资源的互斥访问。
5.1 为什么需要分布式锁?
在分布式系统中,多个应用可能会同时操作同一个资源(如库存、订单等),导致数据不一致,这时就需要分布式锁来保证同一时间只有一个进程能执行操作。
示例问题
-
秒杀系统:多个用户同时抢购,导致库存超卖。
-
订单支付:用户 A 和 B 同时支付同一笔订单,可能出现重复扣款。
-
任务调度:多个服务器执行同一任务,可能导致任务被执行多次。
5.2 Redis 分布式锁的基本实现
使用 SETNX
(SET if Not Exists) 命令创建锁:
SETNX mylock "locked"
锁的基本实现
public boolean tryLock(String lockKey, String requestId, int expireTime) {String result = jedis.set(lockKey, requestId, "NX", "PX", expireTime);return "OK".equals(result); }
✅ 解释:
-
lockKey
:锁的 key(比如"order_lock"
)。 -
requestId
:每个锁唯一的 ID,保证同一客户端能释放自己的锁。 -
"NX"
:只在 key 不存在 时才设置(保证互斥性)。 -
"PX expireTime"
:自动过期时间(避免死锁)。 -
"OK".equals(result)
:返回"OK"
表示加锁成功。
🔴 问题:
-
锁可能无法释放:如果服务崩溃,锁不会自动释放,导致死锁。
-
误删其他线程的锁:如果锁过期后被其他线程重新加锁,当前线程仍然认为自己持有锁,会误删别人的锁。
5.3分布式锁的优化
(1)设置锁的自动过期时间
防止死锁:
SET order_lock "locked" NX PX 10000
NX表示key不存在时才创建,保证互斥性
PX 10000 → 10 秒后自动释放锁
(2)使用 Redisson 实现分布式锁
Redisson 是 Redis 官方推荐的 Java 客户端,提供了高效的分布式锁实现:
RLock lock = redissonClient.getLock("order_lock"); try {lock.lock(10, TimeUnit.SECONDS);// 执行业务逻辑 } finally {lock.unlock();//释放锁 }
Redisson 优势:
自动续期(Watchdog 机制):如果持有锁的线程还在执行,Redisson 会自动延长锁的过期时间。 避免误删锁:保证释放的是自己的锁。
Redis 分布式锁核心要点:
-
使用
SETNX
+PX
设定锁的过期时间,避免死锁。 -
删除锁时使用 Lua 脚本,保证原子性。
-
使用 Redisson 进行优化,提供自动续期,避免误删锁。
-
适用于高并发场景(如秒杀、库存扣减),但可靠性不如 Zookeeper。
Redis 分布式锁虽然高效,但并非绝对可靠,建议使用 Redisson 或 Zookeeper 进行优化! 🚀
相关文章:
Redis面试篇
目录 Redis面试篇 1.什么是Redis?作用是什么? 2.什么是缓存穿透、缓存击穿、缓存雪崩 2.1缓存穿透 2.2缓存击穿 2.3缓存雪崩 3.redis如何持久化 1. RDB(快照存储) 2. AOF(追加日志) 4.Redis 的过…...
C#中通过Response.Headers设置自定义参数
一、基础设置方法 1. 直接添加自定义头 // ASP.NET Core方案 Response.Headers.Append("X-API-Version", "2.3.1"); Response.Headers.Append("Custom-Auth-Token", Guid.NewGuid().ToString());• 底层原理:通过IHeaderDictionary…...
C++标准模板库学习--函数模板返回值参数类型
template<typename T1, typename T2> 2 T1 max (T1 a, T2 b) 3 { 4 return b < a ? a : b; 5 } 6 ... 7 auto m ::max(4, 7.2); // OK, 不过返回类型与第一个参数类型一样 如何解决模板的返回类型 法一,使用decltype进行类型推断,在编译时…...
BUG修复 | 一次钉钉工作台应用远程调试实战(开发者工具)
#1 ℹ️背景故事 最近用户反馈,钉钉工作台的应用无法正常使用,卡在自动登录页面。 天,这是运行10年的老程序😱,我当时真是吓得不轻。这老古董完全不记得怎么改了😂。 #2 🐞开启远程调试 钉钉…...
[目标检测] 训练之前要做什么
背景:训练一个Yolo8模型,在训练之前,数据集的处理是影响效果的关键因素。 Step1 定义规则 什么是人/车,比如人的话可能是站着的人,如果是骑电动车/自行车就不算是人。 Step2 收集数据集 1. 自己标注。如果是自己标…...
一窥DeepSeek开源EPLB项目:揭开技术背后的面纱
摘要 在DeepSeek开源DualPipe项目的同一天,EPLB项目也正式对外公开。EPLB(Enhanced Pipeline Balancing)并非一蹴而就的奇迹,而是经过长时间的研发与优化。该项目旨在通过改进管道平衡机制,提升系统的稳定性和效率。本…...
达梦数据库中插入导出图片的方法与应用
达梦数据库中插入导出图片的方法与应用 在数据库的实际应用场景中,图片存储是一项常见且重要的需求。以电商平台为例,商品展示图片是吸引消费者的关键元素;而在社交软件里,用户头像更是个人形象的直观体现。针对达梦数据库&#…...
问deepseek: OpenFOAM并行分区后,是如何实现ldumatrix矩阵向量乘法计算逻辑的?
在OpenFOAM中,lduMatrix 是用于存储稀疏矩阵的类,支持并行计算。并行分区后,lduMatrix 的矩阵向量乘法通过以下步骤实现: 1. 矩阵分区 分区:将矩阵和向量分配到多个处理器上,每个处理器负责一部分。接口&…...
linux(ubuntu)中Conda、CUDA安装Xinference报错ERROR: Failed to build (llama-cpp-python)
文章目录 一、常规办法二、继续三、继续四、缺少 libgomp库(最终解决)在 Conda 环境中安装 libgomp 如果符合标题情况 执行的: pip install "xinference[all]"大概率是最终解决的情况。 一、常规办法 llama-cpp-python 依赖 CMak…...
蓝耘携手通义万象 2.1 图生视频:开启创意无限的共享新时代
在科技飞速发展的今天,各种新奇的技术不断涌现,改变着我们的生活和工作方式。蓝耘和通义万象 2.1 图生视频就是其中两项非常厉害的技术。蓝耘就像是一个超级大管家,能把各种资源管理得井井有条;而通义万象 2.1 图生视频则像是一个…...
04 1个路由器配置一个子网的dhcp服务
前言 这是最近一个朋友的 ensp 相关的问题, 这里来大致了解一下 ensp, 计算机网络拓扑 相关基础知识 这里一系列文章, 主要是参照了这位博主的 ensp 专栏 这里 我只是做了一个记录, 自己实际操作了一遍, 增强了一些 自己的理解 当然 这里仅仅是一个 简单的示例, 实际场景…...
Android studio运行报错处理
没装HAXM报错: Intel HAXM 7.6.5 下载 下载链接: https://www.filehorse.com/download-intel-haxm/54766/download/#google_vignette 运行时弹窗提示:Device manager The emulator process for AVD Pixel_3a_API_34_extension_level_7_x86_6…...
【CXX】6.7 SharedPtr<T> — std::shared_ptr<T>
std::shared_ptr 的 Rust 绑定称为 SharedPtr。 限制: SharedPtr 不支持 T 为不透明的 Rust 类型。对于在语言边界上传递不透明 Rust 类型的所有权,应改用 Box(C 中的 rust::Box)。 示例 // src/main.rsuse std::ops::Deref; …...
NocoBase 本周更新汇总:双因素身份认证(2FA)
原文链接:https://www.nocobase.com/cn/blog/weekly-updates-202503013 汇总一周产品更新日志,最新发布可以前往我们的博客查看。 本周我们发布了 NocoBase 1.6.0 版本,带来集群模式部署、安全策略优化和迁移管理等多项新特性。 NocoBase …...
【Go学习】04-1-Gin框架-路由请求响应参数
【Go学习】04-1-Gin框架 初识框架go流行的web框架GinirisBeegofiber Gin介绍Gin快速入门 路由RESTful API规范请求方法URI静态url路径参数模糊匹配 处理函数分组路由 请求参数GET请求参数普通参数数组参数map参数 POST请求参数表单参数JSON参数 路径参数文件参数 响应字符串方式…...
DataX的python3使用
datax这东西本身是python2写的,这导致python3,就各种语法报错,问题是,现在的工程都是python3搞的,这就很难受.... 网上找到一篇帖子,可以解决这个问题: 原帖:python3执行datax报错…...
部署项目至服务器:响应时间太长,无法访问此页面?
在我们部署项目到服务器上的时候,一顿操作猛如虎,打开页面..... 这里记录一下这种情况是怎么回事。一般就是服务器上的安全组没有放行端口。 因为我是用宝塔进行项目部署的。所以遇到这种情况,要去操作两边(宝塔and服务器所属平台…...
Map<String,Object>中Fastjson提取entrys对应的值
今天在处理接口数据时,需要解析出对方传入的json数据,并需要取出其中一个字段的值来判断,记录下我的步骤,提供参考: 1.json数据准备 {"hrOrgUnit": "00000000-0000-0000-0000-000000000000CCE7AED4&q…...
【毕业论文格式】word分页符后的标题段前间距消失
文章目录 【问题描述】 分页符之后的段落开头,明明设置了标题有段前段后间距,但是没有显示间距: 【解决办法】 选中标题,选择边框 3. 选择段前间距,1~31磅的一个数 结果...
Android,Java,Kotlin 确保线程顺序执行的多种实现方式
在多线程编程中,有时需要确保一个线程必须等待另一个线程执行完毕后再执行。本文将介绍几种常见的方法来实现这一需求,并提供详细的代码示例。 1. 使用 Thread.join() Thread.join() 是最简单直接的方法,它会让当前线程等待目标线程执行完毕…...
AWK 入门教程:强大的文本处理工具
AWK 是一种强大的文本处理工具,广泛用于 Linux/Unix 系统中对文本文件或数据流进行操作。它能够基于条件筛选、统计字段、重新排列数据等。主要特点包括: 2. AWK 的基本语法 2.1 AWK 程序的结构 AWK 程序的结构: awk pattern { action } file 2.2 常…...
【Linux】在VMWare中安装Ubuntu操作系统(2025最新_Ubuntu 24.04.2)#VMware安装Ubuntu实战分享#
今天田辛老师为大家带来一篇关于在VMWare虚拟机上安装Ubuntu系统的详细教程。无论是学习、开发还是测试,虚拟机都是一个非常实用的工具,它允许我们在同一台物理机上运行多个操作系统。Ubuntu作为一款开源、免费且用户友好的Linux发行版,深受广…...
基于yolov8+streamlit实现目标检测系统带漂亮登录界面
【项目介绍】 基于YOLOv8和Streamlit实现的目标检测系统,结合了YOLOv8先进的目标检测能力与Streamlit快速构建交互式Web应用的优势,为用户提供了一个功能强大且操作简便的目标检测平台。该系统不仅具备高精度的目标检测功能,还拥有一个漂亮且…...
安装 Powerlevel10k 及 Oh My Zsh 的使用
1. 简介 Powerlevel10k 是 Oh My Zsh 最流行的终端主题,它不仅美观,还提供 Git 状态显示、命令执行时间、网络状态、Python 虚拟环境指示等 实用功能。相比其他主题,Powerlevel10k 速度更快、可定制性更强。 本教程将详细介绍如何安装 Powe…...
虚拟机下ubuntu进不了图形界面
6.844618] piix4_smbus 0000:07.3: SMBus Host ContrFoller not enabled! 7.859836] sd 2:0:0:0:0: [sda] Assuming drive cache: wirite through /dev/sda1: clean, 200424/1966080 files, 4053235/7864064 blocks ubuntu启动时,卡在上面输出位置 当前遇到的原因…...
从 root 一滴水看 Spring Data JPA 的汪洋大海
🔥 从 root 一滴水看 Spring Data JPA 的汪洋大海 🌊 在 Spring Data JPA 的世界里,Specification 是个让人又爱又恨的家伙 💡。它能帮你动态构建查询,但那个神秘的 Root<T> root 却总让人摸不着头脑࿱…...
二进制安装指定版本的MariaDBv10.11.6
一、官网下载mariadb安装包 Download MariaDB Server - MariaDB.org 找到对应的版本 下载安装包后上传到服务器这里不再赘述。 二、安装二进制包 1、解压安装包 2、查看安装包内的安装提示文档根据提示文档进行安装 # 解压安装包 tar xf mariadb-10.11.6-linux-systemd-x8…...
日志Python安全之SSTI——Flask/Jinja2
ssti的概念和模板引擎介绍等基础知识前面已经学过了,接下来直接进入正题 先了解flask/jinja2: flask: 用python编写的一个框架,集成 Jinja2 模板引擎(用于动态生成 HTML 内容)。 Flask 的核心组件&…...
梯度下降法以及随机梯度下降法
梯度下降法就是在更新weight的时候,向函数值下降的最快方向进行更新,具体的原理我就不再写了,就是一个求偏导的过程,有高数基础的都能够很快的理解过程。我在我的github里面会一直更新自己学习pytorch的过程,地址为&am…...
从零基础到能独立设计单片机产品,一般需要经历哪些学习阶段?
相信很多人,内心都有“钢铁侠”的幻想,成为能写程序,能设计硬件,能设计结构,能焊接的全能型人才。 上次徐工问我,如果你财富自由了,想去做啥? 我说出来,可能大家都不信&a…...
ORACLE 19.8版本遭遇ORA-600 [kqrHashTableRemove: X lock].宕机的问题分析
客户反馈单机环境的一个数据库半夜突然宕机了,这是一个比较重要的系统;接到通知后分析对应日志,发现ALERT日志中有明显报错:ORA-600 [kqrHashTableRemove: X lock]. 600报错我简单的分为2类,一类不会导致宕机&#x…...
OpenCV实现图像分割与无缝合并
一、图像分割核心方法 1、阈值分割 #include <opencv2/opencv.hpp> using namespace cv; int main() {Mat img imread("input.jpg", IMREAD_GRAYSCALE);Mat binary;threshold(img, binary, 127, 255, THRESH_BINARY); // 固定阈值分割imwrite("binary.…...
《AI浪潮中的璀璨新星:Meta Llama、Ollama与DeepSeek的深度剖析》:此文为AI自动生成
《AI浪潮中的璀璨新星:Meta Llama、Ollama与DeepSeek的深度剖析》:此文为AI自动生成 引言:AI 大模型的群雄逐鹿时代 在科技飞速发展的当下,AI 大模型领域已成为全球瞩目的焦点,竞争激烈程度堪称白热化。从 OpenAI 推出…...
如何搭建个人静态住宅IP:从零开始
你好!今天我们将一起探索如何从头开始搭建个人静态住宅IP。无论您是为了远程办公、在线教育还是游戏加速,静态住宅IP都能带给您更稳定的网络体验。 一、准备阶段 1. 明确需求 首先,您需要清楚自己为什么需要静态住宅IP。可能是为了实现远程…...
机器人触觉的意义
机器人触觉的重要性 触觉在机器人领域至关重要,尤其是在自主操作、精细操控、人机交互等方面。虽然视觉和语音技术已高度发展,但机器人在现实世界中的操作仍然受限,因为: 视觉有局限性:仅凭视觉,机器人难…...
【赵渝强老师】达梦数据库的目录结构
达梦数据库安装成功后,通过使用Linux的tree命令可以非常方便地查看DM 8的目录结构。 tree -L 1 -d /home/dmdba/dmdbms#输出的信息如下: /home/dmdba/dmdbms ├── bin 存放DM数据库的可执行文件,例如disql命令等。 ├── bin2 ├── d…...
centos7使用gpu加速的MinerU
https://mineru.readthedocs.io/zh-cn/latest/user_guide/install/boost_with_cuda.html 由于官方只有ubantu的安装教程,并没有基于centos7的,故需要自己修改命令安装并使用。 在运行此 Docker 容器之前,您可以使用以下命令检查您的设备是否…...
反射、反射调用以及修改成员变量,成员方法,构造函数、反射的应用
DAY11.2 Java核心基础 反射(第二弹) 第一弹请访问链接: 反射(第一篇) getMethod(String name, Class… parameterTypes)getMethods()getDeclaredMethod(String name,Class… parameterTypes)getDeclaredMethods() …...
对Spring的每种事务传播级别的应用场景和失效场景
好的,下面针对Spring的每种事务传播级别,详细说明其应用场景和失效场景,帮助更好地理解它们的实际使用。 1. REQUIRED(默认) 应用场景: 大多数业务方法,尤其是需要事务支持的操作。例如&#x…...
DeepSeek linux服务器(CentOS)部署命令笔记
Linux(CentOS)FinalShellOllama远程访问,本地部署deepseek 自备CentOS服务器,并且已经使用FinalShell连接到服务器 一、准备工作 1.更新服务器 apt-get update-y 2.下载Ollama curl -fsSL https://ollama.com/install.sh | …...
阿里巴巴发布 R1-Omni:首个基于 RLVR 的全模态大语言模型,用于情感识别
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
OpenCV 拆分、合并图像通道方法及复现
视频讲解 OpenCV 拆分、合并图像通道方法及复现 环境准备:安装 OpenCV 库(pip install opencv-python) 内容: 1. 读取任意图片(支持 jpg/png 等格式) 2. 使用 split () 函数拆解成 3 个单色通道…...
Node 使用 SSE 结合redis 推送数据(echarts 图表实时更新)
1、实时通信有哪些实现方式? 特性轮询(Polling)WebSocketSSE (Server-Sent Events)通信方向单向(客户端 → 服务端)双向(客户端 ↔ 服务端)单向(服务端 → 客户端)连接方…...
提升 Instagram 账号安全性:防止数据泄露的步骤
提升 Instagram 账号安全性:防止数据泄露的步骤 在这个数字化时代,Instagram 不仅是我们分享生活点滴的平台,也是个人信息交换的场所。随之而来的,是数据泄露的风险。保护好自己的 Instagram 账号,防止个人信息外泄&a…...
实现“XXX一张图“进行环境设施设备可视化管理
实现“电网一张图”、“铁路一张图”、“水库一张图”、“森林一张图”等概念,本质上是将某一领域的空间数据、设施设备、运行状态等信息整合到一个统一的数字化平台上,实现全域可视化、智能化管理和协同运营。这种“一张图”模式依赖于地理信息系统(GIS)、物联网(IoT)、…...
RTDETR融合[CVPR2025]ARConv中的自适应矩阵卷积
RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《Adaptive Rectangular Convolution for Remote Sensing Pansharpening》 一、 模块介绍 论文链接:https://arxiv.org/pdf/2503.00467 代码链接:https:/…...
深度解读DeepSeek部署使用安全(48页PPT)(文末有下载方式)
深度解读DeepSeek:部署、使用与安全 详细资料请看本解读文章的最后内容。 引言 DeepSeek作为一款先进的人工智能模型,其部署、使用与安全性是用户最为关注的三大核心问题。本文将从本地化部署、使用方法与技巧、以及安全性三个方面,对Deep…...
微服务无状态服务设计
微服务无状态服务设计是构建高可用、高扩展性系统的核心方法。 一、核心设计原则 请求独立性 每个请求必须携带完整的上下文信息,服务不依赖本地存储的会话或用户数据。例如用户认证通过JWT传递所有必要信息,而非依赖服务端Session。 状态外置化 将会话…...
Android 高版本 DownloadManager 封装工具类,支持 APK 断点续传与自动安装
主要有以下优点 兼容高版本 Android:适配 Android 10 及以上版本的存储权限和安装权限。断点续传:支持从断点继续下载。下载进度监听:实时获取下载进度并回调。错误处理:处理下载失败、网络异常等情况。自动安装 APK:…...
Apache Hudi 性能测试报告
一、测试背景 数据湖作为一个集中化的数据存储仓库,支持结构化、半结构化以及非结构化等多种数据格式,数据来源包含数据库数据、增量数据、日志数据以及数仓上的存量数据等。数据湖能够将这些不同来源、不同格式的数据集中存储和管理在高性价比的分布式存储系统中,对外提供…...