高频数据冲击数据库的技术解析与应对方案
目录
- 前言
- 一、问题现象与影响分析
- 1.1 典型场景表现
- 1.2 核心问题分类
- 二、失效根源深度剖析
- 2.1 架构设计缺陷
- 2.2 缓存策略缺陷
- 三、解决方案与最佳实践
- 3.1 缓存架构设计
- 3.1.1 分层缓存架构
- 3.1.2 热点数据识别
- 3.2 缓存策略优化
- 3.2.1 动态过期时间算法
- 3.2.2 缓存更新策略对比
- 3.3 容错机制设计
- 3.3.1 缓存穿透防护
- 3.3.2 雪崩防护方案
- 四、生产环境实践案例
- 4.1 某电商平台优化实践
- 4.2 银行配置中心优化
- 五、监控与调优体系
- 5.1 核心监控指标
- 5.2 调优工具链
- 总结
前言
在分布式系统架构演进过程中,缓存技术已成为保障数据库稳定性的关键防线。根据某互联网公司2025年Q1运维报告显示,72%的数据库性能瓶颈直接源于缓存策略缺陷。本文聚焦高频数据冲击场景下的缓存失效问题,通过架构设计、算法优化、容错机制三个维度展开技术解析,结合Java实现方案与生产实践案例,为构建高可用缓存体系提供完整解决方案。
🌟 关于我 | 李工👨💻
深耕代码世界的工程师 | 用技术解构复杂问题 | 开发+教学双重角色
🚀 为什么访问我的个人知识库?
👉 https://cclee.flowus.cn/
✨ 更快的更新 - 抢先获取未公开的技术实战笔记
✨ 沉浸式阅读 - 自适应模式/代码片段一键复制
✨ 扩展资源库 - 附赠 「编程资源」 + 「各种工具包」
🌌 这里不仅是博客 → 更是我的 编程人生全景图🌐
从算法到架构,从开源贡献到技术哲学,欢迎探索我的立体知识库!
一、问题现象与影响分析
1.1 典型场景表现
-
数据库压力激增:未配置缓存时,100%的读请求直接冲击数据库,导致QPS(每秒查询率)超过数据库承载阈值
-
响应延迟恶化:数据库单次查询延迟从50ms飙升至2000ms+,引发连锁超时
-
系统雪崩风险:高峰时段数据库连接池耗尽,触发级联故障
1.2 核心问题分类
问题类型 | 发生场景 | 典型影响 |
---|---|---|
无缓存设计 | 高频配置信息读取 | 数据库CPU 100%持续告警 |
缓存穿透 | 恶意请求不存在数据 | 数据库无效查询占比超70% |
缓存雪崩 | 大量数据同时过期 | 数据库连接数瞬时突破连接池上限 |
缓存击穿 | 热点数据集中失效 | 秒杀库存查询引发数据库阻塞 |
二、失效根源深度剖析
2.1 架构设计缺陷
-
缓存层缺失:未建立Redis/Memcached缓存层,所有请求直连数据库
-
数据分级缺失:未区分热数据/冷数据,全量数据无差别处理
-
一致性机制缺失:未建立缓存更新通知机制,导致数据版本不一致
2.2 缓存策略缺陷
-
过期时间设置不当:
// 错误示例:所有数据设置相同过期时间 redisTemplate.opsForValue().set("config", data, 3600, TimeUnit.SECONDS);
-
无失效补偿机制:未实现延迟双删、异步更新等补偿策略
-
容量规划不足:缓存内存设置过小,触发频繁淘汰
三、解决方案与最佳实践
3.1 缓存架构设计
3.1.1 分层缓存架构
3.1.2 热点数据识别
-
实时监控:通过Redis的
HOTKEYS
命令识别热点Key -
统计采样:记录每个Key的访问频次和响应时间
-
标记机制:为高频数据添加
hot
标签
3.2 缓存策略优化
3.2.1 动态过期时间算法
import java.util.Random;
import org.springframework.data.redis.core.RedisTemplate;public class CacheExpirationStrategy {private static final Random RANDOM = new Random();private static final int BASE_EXPIRE = 300; // 5分钟基准public long calculateDynamicExpire() {// 基础过期时间±20%随机波动return (long)(BASE_EXPIRE * (0.8 + 0.4 * RANDOM.nextDouble()));}public void setWithDynamicExpire(RedisTemplate<String, String> template, String key, String value) {template.opsForValue().set(key, value, calculateDynamicExpire(), TimeUnit.SECONDS);}
}
3.2.2 缓存更新策略对比
策略类型 | 实现方式 | 适用场景 | 数据一致性 |
---|---|---|---|
Cache-Aside | 应用层控制读写逻辑 | 通用场景 | 最终一致 |
Read-Through | 缓存服务代理数据访问 | 读密集型应用 | 强一致 |
Write-Behind | 异步批量更新 | 写密集型场景 | 最终一致 |
3.3 容错机制设计
3.3.1 缓存穿透防护
-
布隆过滤器:拦截不存在Key的请求
import com.google.common.hash.BloomFilter; import com.google.common.hash.Funnels;public class CachePenetrationFilter {private static final BloomFilter<String> filter = BloomFilter.create(Funnels.stringFunnel(),1_000_000);public static boolean mightContain(String key) {return filter.mightContain(key);}public static void put(String key) {filter.put(key);} }
-
空值缓存:设置60秒TTL的空值占位符
public Object getDataWithNullCache(String key) {Object data = redisTemplate.opsForValue().get(key);if (data == null) {data = database.query(key);if (data == null) {redisTemplate.opsForValue().set(key, "NULL_VALUE", 60, TimeUnit.SECONDS);} else {redisTemplate.opsForValue().set(key, data);}}return data != null ? data : null; }
3.3.2 雪崩防护方案
-
过期时间随机化:
redisTemplate.opsForValue().set("hotKey", value, BASE_EXPIRE + RANDOM.nextInt(300), TimeUnit.SECONDS);
-
熔断降级:当缓存错误率>50%时触发降级
@HystrixCommand(fallbackMethod = "fallbackGetData") public String getDataWithCircuitBreaker(String key) {return redisTemplate.opsForValue().get(key); }public String fallbackGetData(String key) {return database.query(key); // 降级到数据库 }
四、生产环境实践案例
4.1 某电商平台优化实践
-
问题:大促期间商品详情页QPS达50万,数据库宕机3次
-
改造方案:
-
引入Redis集群(32核128G,10节点)
-
热点数据预加载(提前1小时加载TOP1000商品)
-
实现二级缓存(Guava+Redis)
-
配置熔断规则(错误率>20%触发降级)
-
-
效果:
// 二级缓存实现示例 public class TwoLevelCache {private LoadingCache<String, String> localCache = CacheBuilder.newBuilder().maximumSize(1000).expireAfterWrite(5, TimeUnit.MINUTES).build(key -> redisTemplate.opsForValue().get(key));public String get(String key) {return localCache.get(key);} }
数据库QPS从12万降至8千 P99延迟从1500ms降低至120ms 缓存命中率从35%提升至98%
4.2 银行配置中心优化
-
问题:配置变更后缓存不一致导致交易失败
-
解决方案:
-
采用Write-Through策略
-
配置中心与数据库双写校验
-
增量更新通知机制
-
-
关键代码:
@Transactional public void updateConfigWithCache(String key, String value) {// 1. 更新数据库configRepository.update(key, value);// 2. 更新缓存(带版本号)String cacheKey = key + ":v" + System.currentTimeMillis();redisTemplate.opsForValue().set(cacheKey, value);// 3. 发布配置变更事件applicationEventPublisher.publishEvent(new ConfigChangeEvent(key)); }
五、监控与调优体系
5.1 核心监控指标
指标类型 | 监控项 | 告警阈值 |
---|---|---|
缓存命中率 | Redis命中率 | <90% |
延迟指标 | 缓存P99延迟 | >200ms |
容量指标 | Redis内存使用率 | >85% |
错误指标 | 缓存服务异常率 | >5% |
5.2 调优工具链
-
Redis监控:RedisInsight/Monitor
-
链路追踪:SkyWalking/Zipkin
-
性能测试:JMeter/Redis-benchmark
总结
构建了覆盖"问题识别-架构设计-代码实现-效果验证"的完整技术闭环:
-
问题定位:明确缓存穿透、雪崩、击穿等典型故障特征
-
架构创新:提出分层缓存+动态过期时间的复合解决方案
-
工程实践:通过Java代码实现布隆过滤器、二级缓存等关键组件
-
效果验证:生产环境数据验证性能(需自己验证)
相关文章:
高频数据冲击数据库的技术解析与应对方案
目录 前言一、问题现象与影响分析1.1 典型场景表现1.2 核心问题分类 二、失效根源深度剖析2.1 架构设计缺陷2.2 缓存策略缺陷 三、解决方案与最佳实践3.1 缓存架构设计3.1.1 分层缓存架构3.1.2 热点数据识别 3.2 缓存策略优化3.2.1 动态过期时间算法3.2.2 缓存更新策略对比 3.3…...
(37)VTK C++开发示例 ---纹理地球
文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容👉内容导航 👈👉VTK开发 👈 1. 概述 将图片纹理贴到球体上,实现3D地球的效果。 该代码使用了 VTK (Visualization Toolkit) 库来创建一个纹理…...
LeetCode - 1137.第N个泰波那契数
目录 题目 解法 动态规划解法 核心思想 执行流程 具体例子 时间复杂度和空间复杂度 代码 题目 1137. 第 N 个泰波那契数 - 力扣(LeetCode) 解法 动态规划解法 核心思想 动态规划是一种通过将复杂问题分解为更小子问题来解决的算法方法。我将…...
智能决策支持系统的系统结构:四库架构与融合范式
前文我们已经了解了智能决策支持系统的基本概念以及基本构件,接下来我们了解一下系统结构。 有关“智能决策支持系统的基本概念”的内容,可看我文章:智能决策支持系统的基本概念与理论体系-CSDN博客 有关“智能决策支持系统的基本构建”的…...
单片机裸机环境下临界区保护
目录 1、直接中断屏蔽法 2、嵌套计数优化法 3、BASEPRI寄存器应用 4、动态优先级调整策略 5、LDREX/STREX指令应用 6、位带别名区原子访问 7、上下文感知保护 8、中断延迟优化技术 在嵌入式系统开发中,临界区保护是确保系统可靠性的关键技术。本文以ARM Cor…...
【数字电路】第六章 时序逻辑电路
一、时序逻辑电路概述 1.逻辑电路的分类 2.时序逻辑电路的一般结构形式 3.时序逻辑电路的描述方法 4.时序逻辑电路按触发器动作特点分类 5.时序逻辑电路按输出信号特点分类 6.常用时序逻辑电路 二、同步时序逻辑电路的分析 1.同步时序逻辑电路的分析方法 TTL触发器允许输入端…...
Spring Boot的GraalVM支持:构建低资源消耗微服务
文章目录 引言一、GraalVM原生镜像技术概述二、Spring Boot 3.x的GraalVM支持三、适配GraalVM的关键技术点四、构建原生镜像微服务实例五、性能优化与最佳实践总结 引言 微服务架构已成为企业应用开发的主流模式,但随着微服务数量的增加,资源消耗问题日…...
MySQL中的窗口函数
深入理解窗口函数(Window Functions) 窗口函数确实经常用于分组后为行分配序号(如1,2,3…),但它的功能远不止于此。窗口函数是SQL中极其强大的分析工具,可以让你在不减少行数的情况下进行复杂计算。 窗口函…...
WITH在MYSQL中的用法
WITH 子句(也称为公共表表达式,Common Table Expression,简称 CTE)是 SQL 中一种强大的查询构建工具,它可以显著提高复杂查询的可读性和可维护性。 一、基本语法结构 WITH cte_name AS (SELECT ... -- 定义CTE的查询…...
人工智能:如何快速筛选出excel中某列存在跳号的单元格位置?
前提: 电脑上必须提前安装好了【office AI】软件工具 方法如下: 1、打开要操作的excel表格,点击上方的【officeAI】,再点击左边的【右侧面板】按钮,就会出现如下右侧的【OfficeAI助手】 2、在OfficeAI助手的聊天框…...
动态功耗与静态功耗
0 英文缩写 SOI(Silicon on Insulator)绝缘体上硅FET(Field-Effect Transistor)场效应管CMOS(Complementary Metal Oxide Semiconductor)互补金属氧化物半导体 1 功耗分类 CMOS电路功耗主要可以通过如下…...
Webug4.0靶场通关笔记10- 第14关链接注入
目录 第14关 链接注入 1.打开靶场 2.源码分析 3.渗透实战 (1)方法1:跳转外部网页 (2)方法2:获取cookie 4.漏洞防御 本文通过《webug靶场第14关 链接注入》来进行渗透实战。 第14关 链接注入 链接注…...
PyTorch_指定运算设备 (包含安装 GPU 的 PyTorch)
PyTorch默认会将张量创建在 CPU 控制的内存中,即:默认的运算设备为 CPU。我们也可以将张量创建在 GPU 上,能够利用对于矩阵计算的优势加快模型训练。 将张量移动到 GPU 上有两种方法: 使用 cuda 方法直接在 GPU 上创建张量使用 …...
Pytorch-CUDA版本环境配置
Pytorch-CUDA版本环境配置 电脑如果是Windows平台下的Nvidia GPU的用户,需配置Pytorch的CUDA版本,分为三步: 1. 安装或更新NVIDA显卡驱动 官方驱动下载地址: https://www.nvidia.cn/Download/index.aspx?langcn 2. 安装CUDA To…...
力扣:24两两交换链表的节点
目录 1.题目描述: 2.算法思路: 3.代码展示: 1.题目描述: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能…...
SETNX的存在问题和redisson进行改进的原理
首先分布式锁的原理就是当锁不存在时则创建,创建到锁的线程则执行业务。但是在这些操作中会有一些问题,下面是redis命令setNX设置锁的代码片段 if(缓存中有){返回缓存中的数据 }else{获取分布式锁if(获取锁成功){try{查询数据库}finally{释放…...
抽象工厂模式(Abstract Factory Pattern)
很好!你现在已经开始接触设计模式了,而**抽象工厂模式(Abstract Factory Pattern)是一种常用于“创建一系列相关产品”**的经典设计模式。 我会一步步帮你理解: 🧠 一句话解释 抽象工厂模式:提…...
AVIOContext 再学习
这个目前阶段用的不多,暂时不要花费太多精力。 url 的格式不同,使用的传输层协议也不同。这块看代码还没看到自己想的这样。 目前看的信息是:avformatContext 的 io_open 回调函数 在默认情况下叫 io_open_default,在解复用的 av…...
Power Query精通指南1:查询结构设计、数据类型、数据导入与迁移(平面文件、Excel、Web)
文章目录 零、Power Query简介0.1 Power Query 主要功能0.2 Power Query 的优势0.3 Power Query 组件 一、Power Query数据处理基本流程1.1 前期准备1.2 提取1.3 转换1.3.1 Power Query 编辑器界面1.3.2 默认转换1.3.3 自定义转换 1.4 加载1.4.1 自动检测数据类型1.4.2 重命名查…...
Linux 内核升级问题
一、内核升级后启动失败 原因:initramfs 镜像未正确生成或 GRUB 配置错误。 处理步骤如下: 1、进入旧内核启动系统。 2、重新生成 initramfs: sudo dracut -f --regenerate-all 3、更新 GRUB 配置: sudo grub2-mkconfig -o /boo…...
Linux 进程间通信(IPC)详解
进程间通信(IPC)深入解析 一、进程间通信概述 在操作系统里,不同进程间常常需要进行数据交换、同步协调等操作,进程间通信(Inter - Process Communication,IPC)机制应运而生。在Linux系统中&a…...
第3章 Python 3 基础语法001
文章目录 一、缩进规则1. 基本规则2. 示例3. 多级缩进4. 常见错误二、注释规则1. 单行注释2. 多行注释3. 特殊注释4. 注释规范三、代码块规则1. 控制结构2. 函数定义3. 类定义4. 上下文管理器四、总结与最佳实践五、调试技巧以下是 Python 3 基础语法规则的详细说明,涵盖 缩进…...
数据库介绍以及windows下mysql安装
文章目录 1. 前言2. MySQL概述2.1 相关概念2.2 DBMS的分类2.3 数据库交互图2.4 MySQL 介绍 3. MySQL 安装 数据库介绍以及windows下mysql安装 1. 前言 我们浏览的淘宝商品页面详情、刷视频网站的一个个视频,这些数据其实都是存储在公司的存储系统中的。想象一下&…...
list的两种设计
1. 内存布局对比 (1) MSVC 的实现 cpp class _List_node {_List_node* _Next; // 指向下一个节点_List_node* _Prev; // 指向前一个节点_Value_type _Value; // 存储的数据 }; 特点: 每个节点包含两个指针和一个数据成员。 Debug 模式:可能添加迭代…...
【C#】一个类中的接口方法使用static和不使用static的区别
在C#中,类中的接口方法是否使用 static 修饰符会带来显著的区别。这是因为接口方法的实现和调用方式与普通方法不同,而 static 关键字的使用进一步改变了这些行为。 以下是两者的区别: 1. 不使用 static 的接口方法 在这种情况下࿰…...
共铸价值:RWA 联合曲线价值模型,撬动现实资产生态
摘要 本文提出了一种针对真实资产(RWA)产业的联合曲线激励模型,将劳动与数据贡献映射为曲线价值,并基于固定档位与指数衰减奖励发放总计 2.1亿积分。该模型结合了去中心化定价与平滑递减机制,不仅为早期贡献者提供更高…...
【libuv】基于libuv的exe链接错误
vs2017构建 基于libuv的exe链接错误 1>libuv.lib(util.obj) : error LNK2019: unresolved external symbol __imp__GetAdaptersAddresses20 referenced in function _uv_interface_addresses 1>libuv.lib(util.obj) : error LNK2019: unresolved external symbol __imp__…...
什么是生成式 AI (GenAI)?
在科技飞速发展的今天,人工智能(AI)已不再是一个遥远的概念,而是悄然融入了我们的日常生活。从智能语音助手到自动驾驶汽车,从个性化推荐系统到医疗诊断辅助,AI正以前所未有的速度改变着世界。然而,在AI的广阔领域中,有一个分支正逐渐崭露头角,成为推动未来创新的关键…...
爬虫准备前工作
1.Pycham的下载 网址:PyCharm: The only Python IDE you need 2.Python的下载 网址:python.org(python3.9版本之后都可以) 3.node.js的下载 网址:Node.js — 在任何地方运行 JavaScript(版本使用18就可…...
JVM——JVM 是如何处理异常的?
JVM 是如何处理异常的? 在 Java 编程语言中,异常处理是一种强大的机制,用于应对程序运行时出现的错误和意外情况。而 Java 虚拟机(JVM)作为 Java 程序运行的核心环境,在异常处理过程中扮演着至关重要的角色…...
网络基础-----C语言经典题目(12)
一、MTU,IP 协议头中 TTL是什么? MTU 指的是网络层能够接收的最大数据包大小,单位为字节。主要作用是限制数据链路层一次能够传输的数据量。 IP 协议头中的 TTL 是 IP 数据头部的一个 8 位字段,最初它的设计目的是限制数据包在网络…...
【第十六届蓝桥杯省赛】比赛心得与经验分享(PythonA 组)
文章目录 一、我的成绩二、我的备赛经历三、如何备赛(个人观点)1. 基础语法2. 数据结构3. 算法4. 数学 四、做题技巧与注意事项五、我的题解试题A 偏蓝 🏆100%试题B IPV6 🏆0%试题C 2025图形 🏆100%试题D 最大数字 &am…...
解决Maven项目中报错“java不支持版本6即更高的版本 7”
错误背景 当Maven项目编译或运行时出现错误提示 Java不支持版本6即更高的版本7,通常是由于项目配置的JDK版本与当前环境或编译器设置不一致导致的。例如: 项目配置的Java版本为6或7,但实际使用的是JDK 17。Maven或IDE的编译器未正确指定目标…...
MySQL--索引入门
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 Mysql在存储数据之外,数据库系统各种还维护着满足特定查找算法的数据结构,这些数据结构以某种引用(指向)表中的数据…...
【网络原理】深入理解HTTPS协议
本篇博客给大家带来的是网络原理的知识点, 由于时间有限, 分三天来写, 本篇为线程第三篇,也是最后一篇. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动…...
利用Elixir中的原子特性 + 错误消息泄露 -- Atom Bomb
题目信息: This new atom bomb early warning system is quite strange… 题目使用 elixir 语言 一开始,我们会访问 /page.html <!DOCTYPE html> <!-- 设定文档语言为英语 --> <html lang"en"> <head><!-- 设定字符编码为UTF-8 --><…...
机器人--STM32
STM32启动模式 1,从主闪存存储启动器启动(默认) 2,从系统存储启动器启动 下载程序时需要使用的启动方式。 3,从内置的SRAM启动...
LVGL -文本显示 英文、中文
1 文本 在 LVGL 中,文本控件(Label)是一种基本的 UI 组件,用于显示文本信息。文本控件可以用于各种场景,如显示状态信息、提示消息、标题等。在图形用户界面(GUI)开发中,文本是传达信息和指导用户的重要组成部分。为了有效地展示文本,以下是与文本相关的几个关键方面…...
Java面试资源获取
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 **1. GitHub开源项目****2. 技术博客与社区*…...
探索 Spring AI 的 ChatClient API:构建智能对话应用的利器
探索 Spring AI 的 ChatClient API:构建智能对话应用的利器 前言 在当今人工智能蓬勃发展的时代,智能对话系统成为了众多应用的核心组成部分。无论是客服机器人、智能助手还是聊天应用,都离不开高效、灵活的对话处理能力。Spring AI 作为 S…...
Java大师成长计划之第11天:Java Memory Model与Volatile关键字
📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4o-mini模型辅助创作完成,旨在提供灵感参考与技术分享,文中关键数据、代码与结论建议通过官方渠道验证。 在多线程编程中,线程的执…...
java学习之数据结构:一、数组
主要是对数组所有的东西进行总结,整理 适合小白~ 目录 1.什么是数组 1.1数组定义 1.2数组创建 1)静态创建 2)动态创建 1.3数组遍历 1)for和while遍历 2)foreach遍历 2.数组越界问题及解决 2.1数组越界问题 2…...
Oracle OCP认证考试考点详解083系列04
题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 16. 第16题: 题目 解析及答案: 关于使用恢复管理器(RMAN)恢复表,以下哪三项是…...
MARM:推荐系统中的记忆增强突破
文章目录 1. 背景1.1 模型规模与推荐系统的挑战1.2 缓存技术在推荐系统中的潜力1.3 推荐系统中的数据与计算需求1.4 复杂度对比1.5 MARM模型的创新性 2. 方法2.1 流程2.1.1 序列生成器2.1.2 外部缓存查找2.1.3 多目标注意力机制2.1.4 发结果到缓存 **2.2 MARM与SIM**2.2.1 SIM的…...
INP指标
什么是INP(Interaction to Next Paint) 参考网站:webVital-INP文档 定义与核心目标 INP 是一项稳定的 Core Web Vitals 指标,通过统计用户访问期间所有符合条件的互动约定时间,评估网页对用户操作的总体响应能力。最…...
Flink 的状态机制
在实时流处理领域,状态管理是构建复杂业务逻辑的核心能力。Apache Flink 通过统一的状态抽象和高效的容错机制,为开发者提供了从毫秒级窗口聚合到 TB 级历史数据关联的全场景支持。本文将深入剖析 Flink 状态机制的底层原理,结合实际案例展示…...
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】1.1 数据库核心概念与PostgreSQL技术优势
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 深度解析PostgreSQL核心架构与技术优势:从数据库原理到实战场景1.1 数据库核心概念与PostgreSQL技术优势1.1.1 关系型数据库核心架构解析1.1.1.1 数据库系统的底…...
linux下,ollama会把模型文件保存在哪里?
文章目录 运行ollama,有两种形式,估计得分开讨论首先是使用自动启动的ollama:先跑个“小一点的大模型”但是现在模型文件存在哪儿呢?运行ollama,有两种形式,估计得分开讨论 我们用两种方式,来运行ollama。 首先是使用自动启动的ollama: ps -aux | grep ollama系统自…...
EMMC存储性能测试方法
记于 2022 年 9 月 15 日 EMMC存储性能测试方法 - Wesley’s Blog 参考Android-emmc性能测试 | 一叶知秋进行实践操作 dd 命令 页面缓存 为了测试 emmc 的真实读写性能,我们需要先把页面缓存给清理: echo 1 > /proc/sys/vm/drop_caches console:…...
19. LangChain安全与伦理:如何避免模型“幻觉“与数据泄露?
引言:当AI成为企业"数字员工"时的责任边界 2025年某金融机构因AI客服泄露用户信用卡信息被罚款2300万美元。本文将基于LangChain的安全架构与Deepseek-R1的合规实践,揭示如何构建既强大又安全的AI系统。 一、AI安全风险矩阵 1.1 2025年最新威…...