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

需求上线,为什么要刷缓存?

在需求上线的过程中,刷缓存主要有以下几个重要原因:

一、保证数据的准确性

  1. 旧数据残留问题

    • 缓存是为了加快数据访问速度而存储的数据副本。在需求更新后,之前缓存中的数据可能已经不符合新的业务逻辑。例如,一个电商网站修改了商品价格计算规则,旧的商品价格缓存数据如果不清除,用户在访问商品页面时,看到的可能还是旧的价格,这就会导致数据不一致的问题。
    • 再比如,一个新闻网站更新了新闻内容的排版规则,旧的缓存可能会展示不符合新排版的新闻,影响用户体验和信息的正确传达。
  2. 新数据可见性

    • 当新的功能或数据添加到系统中时,缓存可能不会立即获取到这些新内容。通过刷缓存,可以确保新的数据能够及时被用户访问到。比如,在一个社交平台上线了新的用户动态类型,如“限时动态”,如果不刷新缓存,用户可能无法看到这些新动态,直到缓存过期后重新加载,这会延迟新功能的使用和推广。

二、适应系统架构变化

  1. 服务调用关系变更
    • 当系统进行微服务架构调整或者服务之间的调用关系发生变化时,缓存中的数据可能会出现不匹配的情况。例如,在一个由多个微服务组成的电商系统中,订单服务和库存服务之间的接口进行了更新,之前缓存的关于订单和库存关联的数据可能就不再准确。刷缓存可以让系统重新获取正确的关联数据,以适应新的服务调用方式。
  2. 数据库模式改变
    • 如果数据库的表结构、字段等发生了变化,缓存中的数据结构可能也需要相应调整。比如,数据库中增加了一个新的用户属性字段,如“用户会员等级有效期”,缓存中的用户信息缓存如果不刷新,就无法包含这个新字段的数据,从而影响到依赖这些数据的业务功能,如会员权益展示等。

三、性能优化方面的考虑

  1. 缓存命中率调整
    • 有时候,新的需求上线可能会改变数据的访问模式。例如,一个应用程序原本很少访问用户的历史订单详情,缓存中对此数据的命中率较低。但新上线的功能可能会频繁查询用户历史订单,此时刷新缓存可以重新调整缓存内容,提高新需求相关数据的缓存命中率,从而提升系统整体性能。
  2. 避免缓存膨胀
    • 随着需求的变化,一些旧的数据可能不再被频繁使用,但仍然占用缓存空间。刷缓存可以清除这些无用的数据,避免缓存空间被过度占用,导致缓存性能下降。例如,一个图片分享网站对图片分类规则进行了更新,旧分类相关的图片缓存如果不清理,会占用大量缓存资源,而这些资源本可以用于缓存新分类下更有价值的图片数据。

详细介绍下需求上线前的缓存清理流程

以下是需求上线前缓存清理流程的详细介绍:

一、规划与准备阶段

  1. 确定缓存范围
    • 首先需要梳理涉及本次需求上线的所有功能模块对应的缓存数据。这包括从业务逻辑角度分析哪些数据是可能受到影响的。例如,如果是一个电商系统上线新的促销活动功能,那么与商品价格、库存、促销规则相关的缓存都可能需要清理。可以通过查看系统架构文档、数据库关系图以及与相关开发人员沟通来确定缓存范围。
    • 同时,要区分不同类型的缓存,如内存缓存(如Redis)、分布式缓存、本地缓存等。不同类型的缓存清理方式和影响范围可能不同。
  2. 备份重要缓存数据(可选)
    • 对于一些获取成本较高或者可能在清理后影响系统部分功能回滚的缓存数据,可以考虑进行备份。例如,一些复杂计算结果的缓存,如金融系统中的风险评估数据缓存。备份可以通过将缓存数据复制到另一个存储位置(如备用数据库或文件系统)来实现。但需要注意备份数据的有效期和一致性。
  3. 制定清理计划时间表
    • 根据上线时间安排,确定缓存清理的具体时间点。这个时间点要考虑到对用户的影响最小。例如,如果是一个面向全球用户的服务,可能需要选择用户访问量较低的时间段,如深夜或者凌晨。同时,要考虑缓存清理所需的时间,以及清理后缓存重新加载可能带来的系统压力,合理安排清理和后续恢复的时间间隔。

二、缓存清理执行阶段

  1. 通知相关系统和人员
    • 在进行缓存清理之前,要通知所有可能受到影响的系统和团队成员。这包括与缓存交互的后端服务、前端应用开发团队等。可以通过内部消息系统、邮件或者在项目管理工具中发布通知来实现。通知内容应包括清理的时间范围、涉及的缓存范围以及可能对系统功能产生的短期影响。
  2. 使用合适的工具和方法进行清理
    • 对于内存缓存(如Redis)
      • 可以使用Redis提供的命令来删除指定的键(keys)。如果缓存数据是按照一定的命名规则存储的,如以功能模块名称为前缀(例如,“product_price_*”表示商品价格相关缓存),可以使用通配符来批量删除这些键。但要注意在高并发环境下,这种批量删除操作可能会对系统性能产生一定的影响。
      • 也可以通过编程方式,在连接到Redis服务器的应用程序中编写代码来执行缓存清理逻辑。例如,在Java应用中使用Jedis库,通过连接池获取Redis连接,然后调用del方法删除指定的缓存键。
    • 对于分布式缓存(如Memcached)
      • 同样可以通过管理工具或者命令行工具来删除缓存项。与Redis不同的是,Memcached没有像Redis那样复杂的键值对操作功能,通常是通过发送删除命令和指定缓存键来进行清理。
    • 对于本地缓存(如应用程序内的静态变量缓存)
      • 需要在应用程序重新启动或者通过特定的接口来清除缓存。在一些基于Java的应用中,可以通过修改缓存管理类中的方法,如设置一个清除缓存的公共方法,在需求上线前调用这个方法来清空本地缓存。
  3. 监控清理过程
    • 在缓存清理过程中,要对系统进行监控,包括缓存服务器的资源使用情况(如CPU使用率、内存占用等)、网络流量以及相关应用程序的日志。通过监控可以及时发现清理过程中出现的问题,如清理命令执行失败、缓存服务器响应超时等。可以使用系统自带的监控工具(如Redis的INFO命令可以查看服务器状态信息)或者第三方监控软件(如Prometheus结合Grafana进行可视化监控)。

三、验证与恢复阶段

  1. 功能验证
    • 在缓存清理完成后,需要对受影响的功能进行快速验证。可以通过自动化测试脚本和手动测试相结合的方式。自动化测试可以覆盖基本的功能点,如数据读取、页面加载等,检查是否出现缓存相关的错误(如缓存未命中导致的数据加载失败)。手动测试则可以更灵活地检查用户界面和复杂的业务功能是否正常工作。
    • 例如,对于一个上线新用户注册功能的系统,要验证用户注册过程中涉及的验证码缓存(如果有)是否正确清除,新用户信息是否能够正确写入数据库并且在后续登录等操作中能够正确读取(不受旧缓存影响)。
  2. 缓存重新加载与预热(可选)
    • 如果缓存对于系统性能至关重要,在验证功能正常后,可以考虑进行缓存重新加载和预热。缓存重新加载是指让系统重新填充缓存数据,可以通过模拟用户访问或者运行专门的数据加载脚本等方式来实现。缓存预热则是在系统正式上线前,提前将一些常用的数据加载到缓存中,以减少用户访问时的等待时间。
    • 例如,对于一个内容推荐系统,在缓存清理后,可以通过运行推荐算法来重新加载热门内容推荐列表缓存,并且根据用户画像和历史行为数据预热一些个性化推荐缓存,这样在用户上线后可以更快地获取推荐内容。
  3. 问题处理与记录
    • 如果在验证过程中发现问题,要及时处理。可以根据问题的严重程度决定是否回滚缓存清理操作或者暂停上线流程。同时,要对出现的问题进行详细记录,包括问题现象、出现问题的缓存区域、可能的原因以及解决方法。这些记录对于后续的系统维护和优化非常重要。

相关文章:

需求上线,为什么要刷缓存?

在需求上线的过程中,刷缓存主要有以下几个重要原因: 一、保证数据的准确性 旧数据残留问题 缓存是为了加快数据访问速度而存储的数据副本。在需求更新后,之前缓存中的数据可能已经不符合新的业务逻辑。例如,一个电商网站修改了商…...

Docker学习相关笔记,持续更新

如何推送到Docker Hub仓库 在Docker Hub新建一个仓库,我的用户名是 leilifengxingmw,我建的仓库名是 hello_world。 在本地的仓库构建镜像,注意要加上用户名 docker build -t leilifengxingmw/hello_world:v1 .构建好以后,本地会…...

手持PDA终端,提升零售门店管理效率

随着科技的不断进步和零售行业的持续发展,手持PDA终端的应用将会越来越广泛。它将不断融合更多先进的技术和功能,为零售门店管理带来更加便捷、高效、智能的解决方案。 手持PDA终端是集成了数据处理、条码扫描、无线通信等多种功能于一体的便携式设备‌…...

Spring实现Logback日志模板设置动态参数

版权说明: 本文由博主keep丶原创,转载请保留此块内容在文首。 原文地址: https://blog.csdn.net/qq_38688267/article/details/144842327 文章目录 背景设计日志格式实现配置动态取值logback-spring.xml 相关博客 背景 多个单体服务间存在少量…...

AI Infra

文章目录 关于 InfraAI Infra的核心思想 组成部分硬件软件网络云服务监控与优化安全与合规 关键里程碑未来展望 关于 Infra 在大模型中,“infra” 是 “infrastructure” 的缩写,指的是支持大模型训练和部署的技术基础设施。以下是其主要组成部分&#…...

【每日学点鸿蒙知识】RelativeContainer组件、List回弹、Flutter方法调用、Profiler工具等

1、RelativeContainer组件auto对齐规则? 当height设置为auto,这时候为什么子组件设置 top:{anchor: "__container__",align: VerticalAlign.Top}后auto就不生效了呢,anchor锚点不是默认top对齐的吗? 这是为了避免二次…...

springboot集成qq邮箱服务

springboot集成qq邮箱服务 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域,如果当前账号未开启的话自己手动开启。 1.3 获取授权码 进入上图中的【管理服务】后:在【安全设置中生成授权码】,也可以直接点击【继续生成…...

【重庆】《政务数字化应用费用测算规范》(T/CDCIDA 001—2023)-省市费用标准解读系列36

《政务数字化应用费用测算规范(报批稿)》于2023年11月18日实施,本文件按照GB/T 1.1-2020给出的规则起草,主要适用于重庆政务数字化应用项目的费用测算。我司基于专业第三方信息化项目造价机构角度,从标准创新点、定制软…...

linux-centos8-安装make

参考: CentOS 8中 更新或下载时报错:为仓库 ‘appstream‘ 下载元数据失败 : Cannot prepare internal mirrorlist_errors during downloading metadata for repository -CSDN博客 https://blog.csdn.net/lxcw_sir/article/details/140185068 Linux报错…...

springboot3 ThreadPoolTaskExecutor 和 Executors 线程池优化

在 Spring Boot 3 中,可以通过 ThreadPoolTaskExecutor 和 Executors 等方式创建和管理线程池。以下是基于 Spring Boot 的线程池创建工具的详细说明与实现: 一、使用 ThreadPoolTaskExecutor 创建线程池 Spring 提供了 ThreadPoolTaskExecutor,用于管理线程池。它支持灵活…...

Elasticsearch:当混合搜索真正发挥作用时

作者:来自 Elastic Gustavo Llermaly 展示混合搜索何时优于单独的词汇或语义搜索。 在本文中,我们将通过示例探讨混合搜索,并展示它与单独使用词汇或语义搜索技术相比的真正优势。 什么是混合搜索? 混合搜索是一种结合了不同搜索…...

NeurIPS 2024 | 像素级LLM实现图像视频理解、生成、分割和编辑大统一(昆仑万维等)

Accepted by NeurIPS 2024 文章链接:https://arxiv.org/pdf/2412.19806 项目链接:https://vitron-llm.github.io/ Github链接:https://github.com/SkyworkAI/Vitron 亮点直击 首次提出了一种通用的视觉多模态大语言模型(MLLM&…...

基于 GPUTasker 的 GPU 使用情况钉钉推送机器人实现

引言 https://github.com/cnstark/gputasker 随着 AI 模型的广泛应用,GPU 成为团队中最重要的资源之一。然而,如何实时监控 GPU 的使用情况并及时通知团队是一个值得关注的问题。为了更好地管理显卡资源,本文基于 GPUTasker,实现了…...

Linux-Ubuntu之RTC实时时钟显示

Linux-Ubuntu之RTC实时时钟显示 一,原理二,代码实现三,小结1.为什么这个显示不出来? 一,原理 这个RTC的和计数器差不多,往对应寄存器中放入初始化的时间,然后在时钟的作用下,进行累…...

rouyi(前后端分离版本)配置

从gitee上下载,复制下载地址,到 点击Clone,下载完成, 先运行后端,在运行前端 运行后端: 1.配置数据库,在Navicat软件中,连接->mysql->名字自己起(rouyi-vue-blog),用户名roo…...

【2025优质学术推荐】征稿控制科学、仪器、智能系统、通信、计算机、电子信息、人工智能、大数据、机器学习、软件工程、网络安全方向

【2025优质学术推荐】征稿控制科学、仪器、智能系统、通信、计算机、电子信息、人工智能、大数据、机器学习、软件工程、网络安全方向 【2025优质学术推荐】征稿控制科学、仪器、智能系统、通信、计算机、电子信息、人工智能、大数据、机器学习、软件工程、网络安全方向 文章目…...

C# 设计模式(结构型模式):适配器模式

C# 设计模式(结构型模式):适配器模式 在软件开发中,我们经常会遇到需要将不同接口的组件结合在一起的情况。此时,适配器模式(Adapter Pattern)就派上了用场。它属于结构型设计模式,…...

贪心算法概述

贪心算法总是作出当前看来最好的选择,是局部最优 可以使用贪心算法的问题一般具有两个重要的性质 贪心选择性质最优子结构性质 贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择来达到 其与动态规划的问题区别在于,动态规划算法通…...

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码,我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时,才会发现它就像一本魔法书,轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具?它究…...

jrc水体分类对水体二值掩码修正

使用deepwatermap生成的水体二值掩码中有部分区域由于被云挡住无法识别,造成水体不连续是使用jrc离线数据进行修正,jrc数据下载连接如下:https://global-surface-water.appspot.com/download 选择指定区域的数据集合下载如图: 使…...

Scala Collection(集合)

Scala的集合框架非常丰富和灵活,主要包括三大类:序列(Seq)、集(Set)和映射(Map)。这些集合类都扩展自Iterable特质,并且Scala为几乎所有集合类提供了可变和不可变的版本。…...

121.【C语言】数据结构之快速排序(未优化的Hoare排序存在的问题)以及时间复杂度的分析

目录 1.未优化的Hoare排序存在的问题 测试代码 "量身定制"的测试代码1 运行结果 "量身定制"的测试代码2 运行结果 "量身定制"的测试代码3 运行结果 分析代码1、2和3栈溢出的原因 排有序数组的分析 分析测试代码1:给一个升序数组,要求排…...

js 文档注释

在 JavaScript 中,文档注释(也叫 JSDoc 注释)是一种用于为代码提供结构化说明的注释方式。JSDoc 注释通常用于生成 API 文档、提高代码可读性,并为 IDE 提供智能提示。下面是如何在 JavaScript 中编写文档注释的基本指南。 基本语…...

chatgpt model spec 2024

概述 这是模型规范的初稿,该文档规定了我们在OpenAI API和ChatGPT中的模型的期望行为。它包括一组核心目标,以及关于如何处理冲突目标或指令的指导。 我们打算将模型规范作为研究人员和数据标注者创建数据的指南,这是一种称为从人类反馈中进…...

路由技术在网络中的作用及特点

作用:路径选择:在复杂的网络拓扑结构中,路由技术能够根据网络的当前状态和目标地址,为数据报文选择一条最佳的传输路径,确保数据能够快速、准确地到达目的地。例如,在互联网中,当用户访问一个网…...

No.1十六届蓝桥杯备战|第一个C++程序|cin和cout|命名空间

第一个C程序 基础程序 使用DevC5.4.0 写一个C程序 在屏幕上打印hello world #include <iostream> using namespace std;int main() {cout << "hello world" << endl;return 0; } 运行这个C程序 F9->编译 F10->运行 F11->编译运行 mai…...

vim 按下esc后取消高亮

配置 ideavimrc文件 " 按下 Esc 键时自动取消高亮 " 在普通模式下按下 Esc 键取消高亮 nnoremap <Esc> :nohlsearch<CR> " 在插入模式下按下 Esc 键取消高亮 inoremap <Esc> <Esc>:nohlsearch<CR>" 额外&#xff1a;当退出…...

JS-判断字段值是否为空

1.js方法 /*** Description: 判断给定值是否为空* param {any} value 需要检查的值* return {boolean} 如果值为空&#xff0c;返回 true&#xff1b;否则返回 false */ export function isEmpty(value) {// 检查是否为 null 或 undefinedif (value null || value undefined…...

STM32-笔记22-sg90舵机

一、接线 二、实验实现 动手让 SG90 每秒转动一下&#xff0c;0 -> 20 -> 40 -> 100 -> 180 如此循环。 舵机接A6 复制18-呼吸灯&#xff0c;重命名24-sg90舵机 把PWM重命名sg90 打开项目文件 在魔术棒和品上把PWM都去掉&#xff0c;加载sg90文件夹 加载之后…...

智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之10 方案再探之1:特定于领域的模板 之1 随想交流

前面的项目再次不能继续。不得已再一次重新建了这个项目&#xff0c;并以当前修改版本的项目文件为附件开始了今天的沟通。所以 标明是“方案再探” 在新建这个项目的同时&#xff0c;就将项目文件作为附件添加进去&#xff0c;然后开始。 文件链接&#xff1a;智能工厂的设计…...

国内Ubuntu环境Docker部署Stable Diffusion入坑记录

国内Ubuntu环境Docker部署Stable Diffusion入坑记录 本文旨在记录使用dockerpython进行部署 stable-diffusion-webui 项目时遇到的一些问题&#xff0c;以及解决方案&#xff0c;原项目地址: https://github.com/AUTOMATIC1111/stable-diffusion-webui 问题一览&#xff1a; …...

速盾:服务器CDN加速解析的好处有哪些呢?

随着互联网应用的普及&#xff0c;越来越多的企业开始关注如何提升网站的访问速度和用户体验。为了实现这一目标&#xff0c;许多企业选择使用CDN&#xff08;内容分发网络&#xff09;来加速网站的内容分发。CDN通过在全球范围内分布多个节点&#xff0c;将内容缓存到离用户最…...

【sql】CAST(GROUP_CONCAT())实现一对多对象json输出

数据库&#xff1a;mysql 5.7版本以上 问题&#xff1a;一对多数据&#xff0c;实现输出一条数据&#xff0c;并将多条数据转换成json对象输出&#xff0c;可以实现一对多个字段。 项目中关系较为复杂&#xff0c;以下简化数据关系如下&#xff1a; t1是数据表&#xff0c;t…...

[创业之路-221]:企业的责任中心:收入中心、利润中心、成本中心、费用中心、投资中心

目录 一、大部分企业责任中心定义 投资中心&#xff1a;战略决策部 利润中心&#xff1a;事业部 收入中心&#xff1a;进账 成本中心&#xff1a;成本 费用中心&#xff1a;消耗 二、华为对责任中心定义 投资中心 利润中心&#xff08;事业部&#xff1a;BU&#xff0…...

人工智能之基于阿里云图像人脸融合部署

人工智能之基于阿里云图像人脸融合部署 需求描述 基于阿里云搭建图像人脸融合模型&#xff0c;模型名称&#xff1a;iic/cv_unet-image-face-fusion_damo使用上述模型输出人脸融合照片 模型路径&#xff1a;人脸融合 业务实现 阿里云配置 阿里云配置如下&#xff1a; SD…...

GXUOJ-算法-补题:22级《算法设计与分析》第一次课堂练习

2.最大子数组和 问题描述 代码解答 #include<bits/stdc.h> using namespace std; const int N1005; int sum,n,a[N]; int res-1;int result(){for(int i0;i<n;i){if(sum<0) suma[i];else{suma[i];resmax(res,sum);}}return res; } int main(){cin>>n;for(i…...

Redisson 分布式锁获取tryLock和lock的区别

问题 boolean isLock lock.tryLock(10, 30, TimeUnit.SECONDS); boolean isLock lock.lock(30, TimeUnit.SECONDS); boolean isLock lock.lock(); 三者的区别&#xff1f;&#xff1f; 这三个方法都是用于获取 Redisson 分布式锁的&#xff0c;但它们在获取锁的方式和行为…...

mysql及其兼容语法数据库对于注释的特殊要求

我司大部分数据库使用MS-SQL&#xff0c;其中使用大量–开头的行注释&#xff0c;由于业务需要&#xff0c;切换到了Starrocks数据库&#xff08;兼容mysql语法&#xff09;后发现使用with开头子查询的时候&#xff0c;大量报错&#xff0c;单独执行内部的子查询又正常&#xf…...

开源模型应用落地-工具使用篇-Spring AI(七)

一、前言 在AI大模型百花齐放的时代&#xff0c;很多人都对新兴技术充满了热情&#xff0c;都想尝试一下。但是&#xff0c;实际上要入门AI技术的门槛非常高。除了需要高端设备&#xff0c;还需要面临复杂的部署和安装过程&#xff0c;这让很多人望而却步。不过&#xff0c;随…...

多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测

多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入…...

【golang学习之旅】使用VScode安装配置Go开发环境

1. 下载并安装Go 1.1 下载地址1.2 选择版本并下载1.3 安装目录1.4 验证是否安装成功 2. 配置环境变量 2.1 配置步骤2.2 GO部分环境变量说明 3. 下载或更新 Vscode 3.1 下载地址3.2 安装步骤 4. 为Go开发配置VScode 1. 下载并安装Go 1.1 下载地址 https://studygolang.com/dl…...

HarmonyOS Next“说书人”项目 单机版 实践案例

前段时间开发了一个软件&#xff0c;取名为“说书人”&#xff0c;后由于备案暂时没有通过&#xff0c;于是删除了联网功能&#xff0c;重新做了一个单机版&#xff0c;这里对于单机版的开发实践案例进行一个发出&#xff0c;希望能帮助到大家 文章最后给出了AtomGit仓库地址 p…...

Vue3 + ElementPlus动态合并数据相同的单元格(超级详细版)

最近的新项目有个需求需要合并单元列表。ElementPlus 的 Table 提供了合并行或列的方法&#xff0c;可以参考一下https://element-plus.org/zh-CN/component/table.html 但项目中&#xff0c;后台数据返回格式和指定合并是动态且没有规律的&#xff0c;Element 的示例过于简单&…...

前端开发中依赖包有问题怎么办

在前端开发中&#xff0c;如果你发现某个依赖包存在问题&#xff0c;可以考虑以下步骤来解决&#xff1a; 一、简单方案 1. 检查问题来源&#xff1a; 确认问题是否由依赖包引起&#xff0c;而不是你的代码或其他配置问题。查看错误信息、文档和相关的 GitHub issue&#xf…...

Oracle exp和imp命令导出导入dmp文件

目录 一. 安装 instantclient-tools 工具包二. exp 命令导出数据三. imp 命令导入数据四. expdp 和 impdp 命令 一. 安装 instantclient-tools 工具包 ⏹官方网站 https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-64-downloads.html ⏹因为我们在…...

阿里云人工智能工程师ACA认证免费课程学习笔记

阿里云人工智能工程师ACA认证免费课程学习笔记 0. 引言第1章&#xff1a;人工智能基础课时1&#xff1a;人工智能概述课时2&#xff1a;人工智能产业结构课时3&#xff1a;人工智能项目开发的基本流程 第2章&#xff1a;机器学习PAI平台基础第3章&#xff1a;数据处理基础课时8…...

单片机库函数-io输出操作

1、需要使用模块 使用库函数做跑马灯&#xff0c;要用到: misc.h misc.c 时钟模块&#xff1a; stm32f10x_rcc.h stm32f10x_rcc.c gpio模块&#xff1a; 头文件:stm32f10x_gpio.h 源文件:stm32f10x_gpio.c 2、库函数 2.1、初始化GPIO void GPIO_Init(GPIO_TypeDef* …...

SpringAI从入门到熟练

学习SpringAI的记录情况 文章目录 前言 因公司需要故而学习SpringAI文档&#xff0c;故将自己所见所想写成文章&#xff0c;供大佬们参考 主要是为什么这么写呢&#xff0c;为何不抽出来呢&#xff0c;还是希望可以用的时候更加方便一点&#xff0c;如果大家有需求可以自行去…...

Javascript-web API-day04

文章目录 01-实例化日期对象02-常见的日期对象方法03-年月日案例04-年月日简化05-得到时间戳06-倒计时07-关闭节点08-子节点09-增加节点10-克隆节点11-删除节点12-m端时间13-(swiper插件的使用)移动端轮播图游乐园项目 学成在线重构 01-实例化日期对象 <!DOCTYPE html> …...

等待事件 ‘latch: row cache objects‘ 说明及解决方法

早上刚来的时候&#xff0c;收到zabbix 数据库连接数增长的告警&#xff0c;同时应用负责人也说查询很慢、很卡 查看该时间段 最多的等待事件 SELECT event,COUNT(1) num FROM V$ACTIVE_SESSION_HISTORY A WHERE A.SAMPLE_TIME BETWEEN TO_DATE(2025-01-02 09:00:00, YYYY-M…...