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

秋招突击——第七弹——Redis快速入门

文章目录

    • 引言
      • Redis是什么
    • 正文
      • 对象
        • String字符串
          • 面试重点
        • List
          • 面试考点
        • 压缩列表ZipList
          • 面试题
        • Set
          • 面试题讲解
        • Hash
          • 面试重点
        • HASHTABLE底层
          • 面试考点
        • 跳表
          • 面试重点
        • ZSET有序链表
          • 面试重点
    • 总结

引言

  • 在项目和redis之间,我犹豫了一下,觉得还是了解学习一下redis,毕竟这个不会,项目哪里就缺了一块,这里先整体过完一遍。

Redis是什么

核心

  • 内存存储,KV存储

解决什么问题

  • 常用于缓存、消息中转、数据流引擎

Base理论

  • 基本可用
  • 软状态
  • 最终一致性

正文

对象

  • 常见的五个对象
    • String字符串
    • List列表
    • Set集合
    • Hash哈希表
    • Sorted Set有序集合
String字符串

在这里插入图片描述

  • 对象编码的三种格式
    • INT
    • EMBSTR:字符串长度比较小的时候,有一个对象的头和对象的内容,分配的时候在一块
    • RAW:字节头和内容是分开的,适合存储大容量数据

是以阈值来进行判断是使用EMBSTR还是RAW保存
在这里插入图片描述

  • sdshdr简单动态字符串

在这里插入图片描述

  • 1MB取一个最小值
    在这里插入图片描述

在这里插入图片描述

面试重点

EMBSTR一次性分配空间

  • 重新分配,整体需要再分配,所以EMBSTR是只读的,任何写操作之后的EMBSTR都会变成RAW
    • 主要是改过的,都是易变的

set一个已有的数据会发生什么?

  • 同类型的话,会覆盖键或者擦除数据

浮点型数据在string会用什么表示

  • 将浮点数转换为字符串保存的值,浮点数不是INT

string可以有多大

  • Redis字符串最大是512MB

Redis字符串是怎么实现的?

  • INT,EMBSTR,RAW,阈值是44

SDS有什么用?

  • Redis是使用C语言写的
  • 1.SDS包含已使用容量字段0(1)时间快速返回有字符串长度,相比之下,C原生字符串需要O(n)。
  • 2.有预留空间,在扩容时如果预留空间足够,就不用再重新分配内存,节约性能,缩容时也可以将减少的空间先保留下来,后续可以再使用。
  • 3.不再以’0’作为字符串结束判断标准,二进制安全,可以很方便地存储一些二进制数据
List

在这里插入图片描述
在这里插入图片描述
异步删除

  • del命令会同步删除,阻塞客户,直到删除完成
  • unlink异步删除命令,只会取消key在键空间中的关联,然后再删除
    在这里插入图片描述

在这里插入图片描述

  • 压缩链表ZipList
    在这里插入图片描述

  • 链表LiskedList
    在这里插入图片描述

  • 快表Quicklist
    在这里插入图片描述

面试考点

怎么获得List指定范围内的数据

  • 使用Lrange命令,参数为start和stop,lrange是从0开始的

删除特定的元素

  • LREM testlist key 1;

底层编码方式是什么样的?

  • List对象的编码全部由QUICKLIST实现QUICKLIST是一个压缩列表组成的双向链表,结合了ZIPLIST和LINKEDLIST两者的优点
压缩列表ZipList

在这里插入图片描述
在这里插入图片描述
**zlbytes**:
在这里插入图片描述
在这里插入图片描述

  • 连锁更新:因为数据和数据之间的耦合度太高了,一个改变了,另外一个也会改变,这里使用ListPack改变这个问题

Listpack结局连锁更新
在这里插入图片描述
在这里插入图片描述

面试题

ZIPList有什么优点

  • 节约内存,访问满足局部性原则, 执行效率更快

ZIPList怎么压缩数据的

  • 结构头:记录了字节数、开始位置、节点个数
  • 数据部分:记录了上一个节点的长度,内容编码,内容本身
  • 结尾标志:最后一个有1字节的结尾标识

ZIPList支持从后往前遍历吗

  • 双端,使用prelen上一个节点的长度进行遍历

ZIPList如何从前往后遍历

  • encoding包含了字符串或者整型的长度信息,使用该信息从前向后遍历

连锁更新是什么问题

  • ZIPList是每一个节点都会记录上一个节点的长度,如果上一个节点小于255字节,这个记录字段就是1字节,否则就是5字节
  • 由于更新某一个节点,会导致长度变化,如果从255以内,变得超过了255,会影响下一个节点的长度。

如何解决连锁更新

  • 使用ListPack解决,每一个节点是记录自身的长度,并且上一个节点用来记录的字段和当前的节点是邻接的,所以通过特殊字段向前遍历实现。
Set

在这里插入图片描述

在这里插入图片描述
编码模式
在这里插入图片描述
在这里插入图片描述

面试题讲解

set是有序的吗

  • set的底层实现是整数集和HASHTABLE,前者是有序的,后者是无序的

求两个set的交集

  • SINNER SETA SETB

set的编码格式

  • Set使用整数集合和字典作为底层编码,当元素都是整数同时元素个数不超过512个,会使用整数集合编码,否则使用字典编码,

为什么使用两中编码原因

  • Set的底层编码是整数集合和字典,当元素数量小并且全部是整数的时候,会使用整数集合编码,更加的节约内存。元素数量变大会使用字典编码,查找元素的速度会更快。
Hash

在这里插入图片描述
在这里插入图片描述

底层实现原理

  • 数据量小,查询更快,使用ZIPLIST
  • 数据量大,使用HASHTABLE
    在这里插入图片描述
    在这里插入图片描述
面试重点

HASH的编码方式

  • ZIPLIST:元素较小,并且单个元素较少的情况
  • HASHTABLE:元素较多,并且单个元素很多的情况

HASH为什么使用两种编码方式

  • 采用两种编码方式的原因是ZIPLIST更节约内存,所以在小数据量时使用。而数据多起来了,需要HASHTABLE提高更高的查找性能、更新性能
HASHTABLE底层
  • 补充一个,还有上面的HASH数据结构

在这里插入图片描述
具体代码
在这里插入图片描述

  • rehashidx表示当前表格是否再使用,触发扩容之后,这个状态就变为0
    • 有针对字典的操作,就会移动复制一次对应的元素
  • 注意查找和新增的操作
    • 查询是在零表
    • 增加是新表
      在这里插入图片描述

渐进式扩容

  • 有对于字典的请求,就执行一次复制,迁移复制一个key-value
  • 最后记得恢复最终的表格,是h[0]指向迁移之后的元素

在这里插入图片描述
扩容和缩容的时间

  • 负载因子为k,那么k=ht[0].used/ht[0].size
  • 扩容:
    • 1.负载因子大于等于1,说明此时空间已经非常紧张。新数据是在链表上叠加的,越来越多的数据如果此时服务器没有执行BGSAVE或者BGREWRITEAOF这两个复制命令,就会发生扩容。
    • 2.负载因子大于5,这时候说明HASHTABLE真的已经不堪重负了,此时即使是有复制命令在进行也要进行Rehash扩容。
  • 缩容:
    • 1.当负载因子小于0.1,即负载率小于10%,此时进行缩容,新表大小为第一个大于等于原表used的2次方幂,缩容也受复制命令影响。
面试考点

查看HASHTABLE中所有元素数量的计算时间复杂度是多少?

  • 有一个used字段,时间复杂度是O(1)

一个数据在HASHTABLE中的存储位置,是怎么计算的?

  • 通过hash函数计算出key的哈希值,然后与哈希掩码做与运算,得到索引值,索引值就是在HASHTABLE中的存储位置。

HASHTABLE如何扩容

  • 渐进式Rehash操作来完成
  • 首先程序会为HASHTABLE的1号表分配空间,空间大小是第一个大于等于0号表大小*2的2^n。在rehash进行期间,标记位rehashidx从0开始,每次对字典的键值对执行增删改查操作后,都会将rehashidx位置的数据迁移到1号表,然后将rehashidx加1,随着字典操作的不断执行,最终0号表的所有键值对都会被rehash到1号表上。之后,1号表会被设置成0号表,接着在1号表的位置创建一个新的空白表。

什么时候扩容?什么时候缩容?
扩容

  • 当以下两个条件中的任意一个被满足时,哈希表会自动开始扩容:
  • 服务器目前没有在执行BGSAVE或者BGREWRITEAOF,并且负载因子>=1服务器目前正在执行BGSAVE或者BGREWRITEAOF,并且负载因子>=5
    缩容
  • 当哈希表的负载因子小于0.1时,程序会自动开始对哈希表进行收缩操作。
跳表
  • 和树的查询效率一样,是logn
    在这里插入图片描述
    在这里插入图片描述
    跳表查询数据的过程
  • 高级索引产生是随机的
  • 二级索引跳跃的距离较长,一级索引短一点,普通索引,最短
  • 找35,通过二级索引,一次就行。
  • 找45,通过二级索引,找到35,再找以及索引,就找到45
  • 总结
    • 超过目标值,索引降级重新查找
    • 小于目标值,继续使用高级索引

插入节点的方式

  • 时间复杂度是logn
    在这里插入图片描述

Redis中的跳表设定

在这里插入图片描述
具体实现
在这里插入图片描述

层高是怎么确定的
在这里插入图片描述

面试重点

跳表是什么?和普通的链表有什么区别?

  • 跳表也算链表,不过相对普通链表,增加了多级索引,通过索引可以实现O(logN)的元素查找效率。

跳表的查找过程

  • 从高级索引往后查找,如果下个节点的数值比目标节点小,则继续找,否则不跳过去,而是用下级索引往下找

调表查询节点总数的时间复杂度

  • O(1),表头结构中定义了统计节点数量的字段

跳表中一个结点的层高是怎么定义的

  • 跳表在插入新节点之前会计算一个随机的层高,具体来说,跳表的每一个节点一开始默认都是1层,然后每增加一层的概率都是 25%,在5.0.5版本最高为64层

插入一条数据的时间复杂度

  • logN
  • 查找类似二分查找,平均时间复杂度就是logN

跳表插入数据会影响其他节点的层高吗

  • 不会的,节点层高在创建时就确认的,新插入的节点,只会影响每一层的前一跳和后一跳的关联指针。
ZSET有序链表

在这里插入图片描述
重在于对文档敲一敲,即使部队这文档也能够顺利使用

底层编码格式

在这里插入图片描述
底层编码的具体实现

在这里插入图片描述

跳表:范围查找
HASHTABLE:提供按成员查找分数的能力
在这里插入图片描述

面试重点

Zset如何添加元素?如何移除元素

  • zadd和zrem实现

Zset如何从大到小查找范围

  • zrange从小到大查找,zrevrange逆序查找

Zset底层编码的方式

  • ZSet就是有序集合对象,ZSet对象的底层有两种编码方式:ziplist或者如果一个ZSet对象中的所有元素同时满足:元素数量小于128个 以及 所有元素成员的长度都小于64字节,那么会使用ziplist编码,否则使用 skiplist+字典 编码。

Zset计算总的元素数的时间复杂度

  • 无论是ZIPLIST编码,还是SKIPLIST的编码,查询节点总数的平均时间复杂度都是O(1),因为对应结构的表头结构中都定义了一个保存节点数量的字段,查询节点总数时会直接返回这个字段。

Zset为什么要使用两种编码方式实现

  • hash使用单值查找,跳表使用的是范围查询

Zset为什么不使用B+树,而是使用跳表

  • B+树的数据都存在叶子节点中,而且它是多叉树层,这两个特点使得它适合磁盘存储。而Redis是一个内存数据库,B+树层高低的优势荡然无存,所以选择了实现更加简单的跳表。
  • 而且跳表的插入性能更高,虽然两者的插入平均时间复杂度相当,但是跳表插入数据后只需要修改前进和后退指针即可,而B+树还需要维护树的平衡,细节上有额外开销

总结

  • 这是redis的基础对象已经学完了,后面的东西就是跳着学习了,得加快进度了,这个周末是要把redis差不多学习完的。

相关文章:

秋招突击——第七弹——Redis快速入门

文章目录 引言Redis是什么 正文对象String字符串面试重点 List面试考点 压缩列表ZipList面试题 Set面试题讲解 Hash面试重点 HASHTABLE底层面试考点 跳表面试重点 ZSET有序链表面试重点 总结 引言 在项目和redis之间,我犹豫了一下,觉得还是了解学习一下…...

软考初级网络管理员__操作系统单选题

1.在Windows资源管理器中,假设已经选定文件,以下关于“复制”操作的叙述中,正确的有()。 按住Ctr键,拖至不同驱动器的图标上 按住AIt键,拖至不同驱动器的图标上 直接拖至不同驱动器的图标上 按住Shift键&#xff0…...

从入门到精通:网络编程套接字(万字详解,小白友好,建议收藏)

一、预备知识 1.1 理解源IP地址和目的IP地址 在网络编程中,IP地址(Internet Protocol Address)是每个连接到互联网的设备的唯一标识符。IP地址可以分为IPv4和IPv6两种类型。IPv4地址是由32位二进制数表示,通常分为四个八位组&am…...

dledger原理源码分析系列(一)架构,核心组件和rpc组件

简介 dledger是openmessaging的一个组件, raft算法实现,用于分布式日志,本系列分析dledger如何实现raft概念,以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的架构,核心组件;rpc组…...

第七节:如何浅显易懂地理解Spring Boot中的依赖注入(自学Spring boot 3.x的第二天)

大家好,我是网创有方,今天我开始学习spring boot的第一天,一口气写了这么多。 这节通过一个非常浅显易懂的列子来讲解依赖注入。 在Spring Boot 3.x中,依赖注入(Dependency Injection, DI)是一个核心概念…...

Postman自动化测试实战:使用脚本提升测试效率

在软件开发过程中,接口测试是确保后端服务稳定性和可靠性的关键步骤。Postman作为一个流行的API开发工具,提供了强大的脚本功能来实现自动化测试。通过在Postman中使用脚本,测试人员可以编写测试逻辑,实现测试用例的自动化执行&am…...

CSMA/CA并不是“公平”的

CSMA/CA会造成过于公平,对于最需要流量的节点,是最不友好的,而对于最不需要流量的节点,则是最友好的。 CSMA/CA是优先公平来工作的。 CSMA/CA首先各节点使用DIFS界定air idle,在此期间大家都等待 其次,为了同时发送引起碰撞,在DIFS之后随机从CWmin和CWmax之间选择一个时…...

【漏洞复现】I doc view——任意文件读取

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 I doc view 在线文档预览是一个用于查看、编辑、管理文档的工具…...

图数据库 vs 向量数据库

最近大模型出来之后,向量数据库重新翻红,业界和市场上有不少声音认为向量数据库会极大的影响图数据库,图数据库市场会萎缩甚至消失,今天就从技术原理角度来讨论下图数据库和向量数据库到底差别在哪里,适合什么场景&…...

企业品牌出海第一站 维基百科词条创建

维基百科是一部内容开放、自由的网络百科全书,旨在创造一个涵盖所有领域知识,服务所有互联网用户的知识性百科全书。其在国外应用非常广泛且认可度很高,国内品牌出海或国际品牌都很有必要创建企业自己的维基百科页面,以及企业高管的个人维基百科页面。 如…...

Windows下activemq集群配置(broker-network)

1.activemq版本信息 activemq:apache-activemq-5.18.4 2.activemq架构 3.activemq集群配置 activemq集群配置基于Networks of Brokers 这种HA方案的优点:是占用的节点数更少(只需要2个节点),而且2个broker都可以响应消息的接收与发送。不足&#xff…...

心理辅导平台系统

摘 要 中文本论文基于Java Web技术设计与实现了一个心理辅导平台。通过对国内外心理辅导平台发展现状的调研,本文分析了心理辅导平台的背景与意义,并提出了论文研究内容与创新点。在相关技术介绍部分,对Java Web、SpringBoot、B/S架构、MVC模…...

代理IP对SEO影响分析:提升网站排名的关键策略

你是否曾经为网站排名难以提升而苦恼?代理服务器或许就是你忽略的关键因素。在竞争激烈的互联网环境中,了解代理服务器对SEO的影响,有助于你采取更有效的策略,提高网站的搜索引擎排名。本文将为你详细分析代理服务器在SEO优化中的…...

【leetcode--三数之和】

这道题记得之前做过,但是想不起来了。。总结一下: 函数的主要步骤和关键点: 排序:对输入的整数数组nums进行排序。这是非常重要的,因为它允许我们使用双指针技巧来高效地找到满足条件的三元组。初始化:定…...

解决Java中的ClassCastException问题

解决Java中的ClassCastException问题 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java编程中,ClassCastException是一个常见的运行时异常&am…...

【TensorFlow深度学习】混合生成模型:结合AR与AE的创新尝试

混合生成模型:结合AR与AE的创新尝试 引言自回归模型与自动编码器的简述混合模型的创新尝试组合AR与AE:MADE混合模型在图学习中的应用 结论与展望 在自我监督学习的广阔天地里,混合生成模型以其独特的魅力,跨越了自回归&#xff08…...

Spring:Spring中分布式事务解决方案

一、前言 在Spring中,分布式事务是指涉及多个数据库或系统的事务处理,其中事务的参与者、支持事务的服务器、资源管理器以及事务管理器位于分布式系统的不同节点上。这样的架构使得两个或多个网络计算机上的数据能够被访问并更新,同时将这些操…...

音视频开发32 FFmpeg 编码- 视频编码 h264 参数相关

1. ffmpeg -h 这个命令总不会忘记,用这个先将ffmpeg所有的help信息都list出来 C:\Users\Administrator>ffmpeg -h ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 pro…...

标准版小程序订单中心path审核不通过处理教程

首先看自己小程序是不是已经审核通过并上线状态才在站内信里面提醒的? 如果没有提交过审核,请在提交的时候填写。path地址为:pages/goods/order_list/index 如果是已经上线的小程序,当时没要求填这个,但新的政策要求填…...

移植对话框MFC

VC版 MFC程序对话框资源移植 以下均拷贝自上面,仅用来记录 (部分有删除) 法1: Eg:将B工程调试好的对话框移植到A工程中 1.资源移植 1.1 在2017打开B工程,在工作区Resource标签页中选中Dialog文件夹下的资源文件,按…...

【开源的字典项目】【macOS】:在macOS上能打开mdd and mdx 的github开源项目

【开源的字典项目】【macOS】 在macOS上能打开mdd and mdx 的github开源项目 Here are some GitHub repositories that provide code for opening and reading mdd and mdx files in macOS: 1. MdxEdit: Repository: https://github.com/mdx-editorDescription: A free and …...

已解决javax.security.auth.login.LoginException:登录失败的正确解决方法,亲测有效!!!

已解决javax.security.auth.login.LoginException:登录失败的正确解决方法,亲测有效!!! 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 1. 检查用户名和密码 用户名和密码验证 2. 验证配置文件 …...

2741. 特别的排列 Medium

给你一个下标从 0 开始的整数数组 nums &#xff0c;它包含 n 个 互不相同 的正整数。如果 nums 的一个排列满足以下条件&#xff0c;我们称它是一个特别的排列&#xff1a; 对于 0 < i < n - 1 的下标 i &#xff0c;要么 nums[i] % nums[i1] 0 &#xff0c;要么 nums[…...

读AI新生:破解人机共存密码笔记15辅助博弈

1. 辅助博弈 1.1. assistance game 1.2. 逆强化学习如今已经是构建有效的人工智能系统的重要工具&#xff0c;但它做了一些简化的假设 1.2.1. 机器人一旦通过观察人类学会了奖励函数&#xff0c;它就会采用奖励函数&#xff0c;这样它就可以执行相同的任务 1.2.1.1. 解决这…...

C++ 因项目需求,需要将0~2的32次方这个区间的数字保存到内存当中(内存大小为4G),并且可以实现对任意一个数字的增删。(先叙述设计思路,再写岀代码)

问题&#xff1a; C 因项目需求&#xff0c;需要将0~2的32次方这个区间的数字保存到内存当中(内存大小为4G),并且可以实现对任意一个数字的增删。(先叙述设计思路&#xff0c;再写岀代码) 解答 设计思路代码实现说明 为了在有限的内存&#xff08;4GB&#xff09;中存储和操作 …...

Linux 下的性能监控与分析技巧

在日常的服务器管理和问题诊断过程中&#xff0c;Linux 命令行工具提供了强大的支持。本文通过几个常用的示例&#xff0c;介绍如何快速定位问题、监控服务器性能。 无论你是编程新手还是有一定经验的开发者&#xff0c;理解和掌握这些命令&#xff0c;都将在你的工作中大放异…...

不可复制网站上的文字——2种方法

禁用javascript或Console控制台代码 &#xff08;1&#xff09;F12键——设置——勾选禁用javascript &#xff08;2&#xff09;Console控制台敲如下代码&#xff1a; var allowPaste function(e){ e.stopImmediatePropagation(); return true; }; document.addEventListe…...

Ubuntu 22.04上编译安装c++ spdlog library

Very fast, header-only/compiled, C logging library. 请以root身份或sudo执行。 1. 安装必需的依赖项&#xff1a; sudo apt-get update sudo apt-get install git g cmake 2. 克隆 spdlog 仓库&#xff1a; cd /opt git clone https://github.com/gabime/spdlog.git …...

ESP32代码开发入门

ESP-IDF ESP-ADF开发 开发概要 编译环境及SDK搭建 整个开发流程是:下载ESP-IDF, ESP-ADF(按需下载),并安装, 编写hello world工程,编译并烧录到主板验证 可参照ESP32 esp-idf esp-adf环境安装及.a库创建与编译api大部分可以用glibc的接口 做了封装,时间time(NULL), 创建线程p…...

“势”是“态”的偶然性减少

“态势感知”中的“势”指的是一种趋势或倾向性&#xff0c;而“态”则表示状态或局势。这个术语常用于描述在一段时间内系统或事件显示出来的方向性变化或发展趋势。因此&#xff0c;可以将“态势”理解为系统或事件状态变化的趋势&#xff0c;这种变化通常反映出偶然性减少的…...

人脑计算机技术与Neuroplatform:未来计算的革命性进展

引言 想象一下&#xff0c;你在某个清晨醒来&#xff0c;准备开始一天的工作&#xff0c;而实际上你的大脑正作为一台生物计算机的核心&#xff0c;处理着大量复杂的信息。这并非科幻电影的情节&#xff0c;而是人脑计算机技术即将带来的现实。本文将深入探讨FinalSpark公司的…...

新版周易测算系统源码 去授权完美运行

已经去掉授权可以完美运行 更新了三个模板市面上都是几千几千的卖 更新了三套首页新ui 自己后台切换就行 源码大小&#xff1a;338M 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89447857 更多资源下载&#xff1a;关注我....

【PYTHON】力扣刷题笔记 -- 0053. 最大子数组和【中等】

题目描述&#xff1a;给你一个整数数组 array: nums &#xff0c;请你找出一个具有最大和的连续子数组 sub-array&#xff0c;返回其最大和 子数组&#xff08;最少包含一个元素&#xff09;: 是数组中的一个连续部分 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1…...

Linux启动elasticsearch,提示权限不够

Linux启动elasticsearch&#xff0c;提示权限不够&#xff0c;如下图所示&#xff1a; 解决办法&#xff1a; 设置文件所有者&#xff0c;即使用户由权限访问文件 sudo chown -R 用户名[:新组] ./elasticsearch-8.10.4 //切换到elasticsearch-8.10.4目录同级 chown详细格式…...

css 布局出现无法去除的空白

案件介绍&#xff1a;在没有设置任何的css样式的情况下 文字顶部出现无法去除的空白 源代码 <div click"onClick" ><div class"tableTextButton--container"></div><Icon v-if"loading || thisLoading" type"ios-lo…...

使用SpringBoot整合filter

SpringBoot整合filter&#xff0c;和整合servlet类似&#xff0c;也有两种玩儿法 1、创建一个SpringBoot工程&#xff0c;在工程中创建一个filter过滤器&#xff0c;然后用注解WebFilter配置拦截的映射 2、启动类还是使用ServletComponentScan注解来扫描拦截器注解WebFilter 另…...

Python酷库之旅-第三方库openpyxl(15)

目录 一、 openpyxl库的由来 1、背景 2、起源 3、发展 4、特点 4-1、支持.xlsx格式 4-2、读写Excel文件 4-3、操作单元格 4-4、创建和修改工作表 4-5、样式设置 4-6、图表和公式 4-7、支持数字和日期格式 二、openpyxl库的优缺点 1、优点 1-1、支持现代Excel格式…...

葡萄串目标检测YoloV8——从Pytorch模型训练到C++部署

文章目录 软硬件准备数据准备数据处理脚本模型训练模型部署数据分享软硬件准备 训练端 PytorchultralyticsNvidia 3080Ti部署端 fastdeployonnxruntime数据准备 用labelimg进行数据标注 数据处理脚本 xml2yolo import os import glob import xml.etree.ElementTree as ETxm…...

OpenAI推出自我改进AI- CriticGPT

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

springboot系列七: Lombok注解,Spring Initializr,yaml语法

老韩学生 LombokLombok介绍Lombok常用注解Lombok应用实例代码实现idea安装lombok插件 Spring InitializrSpring Initializr介绍Spring Initializr使用演示需求说明方式1: IDEA创建方式2: start.spring.io创建 注意事项和说明 yaml语法yaml介绍使用文档yaml基本语法数据类型字面…...

专访ATFX首席战略官Drew Niv:以科技创新引领企业高速发展

在金融科技创新的浪潮中&#xff0c;人才是推动企业高速发展的核心驱动力&#xff0c;优质服务是引领企业急速前行的灯塔。作为差价合约领域的知名品牌&#xff0c;ATFX高度重视人才引进工作&#xff0c;秉持“聚天下英才而用之”的理念&#xff0c;在全球范围内广揽科技精英&a…...

关于FPGA对 DDR4 (MT40A256M16)的读写控制 4

关于FPGA对 DDR4 &#xff08;MT40A256M16&#xff09;的读写控制 4 语言 &#xff1a;Verilg HDL 、VHDL EDA工具&#xff1a;ISE、Vivado、Quartus II 关于FPGA对 DDR4 &#xff08;MT40A256M16&#xff09;的读写控制 4一、引言二、DDR4 SDRAM设备中模式寄存器重要的模式寄存…...

android——Livedata、StateFlow、ShareFlow和Channel的介绍和使用

目录 一、LiveData介绍 二、StateFlow介绍 三、ShareFlow介绍 四、Channel介绍 小结 一、LiveData介绍 LiveData是一种在Android开发中用于观察数据变化的组件。它可以被观察者注册并在数据变化时通知观察者&#xff0c;从而实现数据的实时更新。LiveData具有生命周期感知能力&…...

Debezium 同步 MySQL 实时数据并解决数据重复消费问题

我们使用 Debezium 实时同步一个 MySQL 的数据到另一个 MySQL&#xff0c;代码网上基本都有&#xff0c;都是在引入 debezium-api&#xff0c;debezium-embedded 后写 Java 代码&#xff0c;做好了基本配置后启动程序&#xff0c;Debezium 会自动读取 MySQL 的实时 binlog&…...

【图像处理】1、使用OpenCV库图像轮廓的检测和绘制

OpenCV (Open Source Computer Vision Library) 是一个用于计算机视觉和图像处理的开源库。它提供了数百种用于图像和视频分析的算法&#xff0c;并被广泛应用于研究和商业领域。OpenCV 支持多种编程语言&#xff0c;包括 C、Python、Java 等&#xff0c;具有跨平台的特性&…...

【AI编译器】triton学习:矩阵乘优化

Matrix Multiplication 主要内容&#xff1a; 块级矩阵乘法 多维指针算术 重新编排程序以提升L2缓存命 自动性能调整 Motivations 矩阵乘法是当今高性能计算系统的一个关键组件&#xff0c;在大多数情况下被用于构建硬件。由于该操作特别复杂&#xff0c;因此通常由软件提…...

动静分离网络

动静分离网络的主要目的是分别处理视频帧中的静止区域和运动区域&#xff0c;以便对不同区域采用不同的去噪策略。这里提供一个实现思路&#xff0c;通过两个分支网络分别处理静止区域和运动区域&#xff0c;然后将两者的输出融合起来。 实现步骤 帧差图生成&#xff1a;计算…...

Python商务数据分析知识专栏(三)——Python数据分析的应用①Matplotlib数据可视化基础

Python商务数据分析知识专栏&#xff08;三&#xff09;——Python数据分析的应用①Matplotlib数据可视化基础 Matplotlib数据可视化基础1.掌握绘图基本语法与常用绘图2.分析特征间关系3.分析特征内部数据分布与分散情况 Matplotlib数据可视化基础 1.掌握绘图基本语法与常用绘…...

DataV大屏组件库

DataV官方文档 DataV组件库基于Vue &#xff08;React版 (opens new window)&#xff09; &#xff0c;主要用于构建大屏&#xff08;全屏&#xff09;数据展示页面即数据可视化&#xff0c;具有多种类型组件可供使用&#xff1a; 源码下载...

paraview跨节点并行渲染

参考&#xff1a; https://cloud.tencent.com/developer/ask/sof/101483588 ParaView 支持使用其内置的网络拓扑来进行跨节点的并行渲染。以下是一个简单的步骤来设置和运行跨节点的并行渲染&#xff1a; 确保你的计算环境支持多节点计算&#xff0c;比如通过SSH、MPI或其他集…...

解决pip安装时的“SyntaxError: invalid syntax”错误

项目场景&#xff1a; 项目中有新的成员加入时&#xff0c;第一步就是安装开发环境&#xff0c;然而往往同样的机器、同样的配置&#xff0c;我们却总能遇到各种各样不同的问题。 今天分享一个简单的操作问题。 问题描述 项目用到pandas&#xff0c;安装pandas时遇到Syntax…...

使用PHP创建一个简单的Web爬虫

随着互联网的不断发展&#xff0c;信息的获取变得越来越方便。然而&#xff0c;海量的信息也给我们带来了很多的烦恼&#xff0c;如何高效地获取到我们所需要的信息就成了一项非常重要的任务。在实现自动化获取信息的过程中&#xff0c;web爬虫被广泛应用。 Web爬虫是一种自动…...

Redis缓存穿透

现象&#xff1a; 1、应用服务器压力变大 2、redis命中率降低 3、一直查询数据库 产生原因&#xff1b; 1、redis查询不到数据 2、出现很多非正常URL访问 解决方案&#xff1a; 1、对空值做缓存 ---如果一个查询返回的数据为空(不管是数据是否不存在)&#xff0c;我们仍然把这…...

SpringBoot 整合 SpringSecurity

1. 项目目录 2. pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.6.3</version> </dependency> <dependency><groupId>org.sprin…...

【echarts】拖拽滑块dataZoom-slider自定义样式,简单适配移动端

电脑端 移动端 代码片段 dataZoom: [{type: inside,start: 0,end: 100},{type: slider,backgroundColor: #F2F5F9,fillerColor: #BFCCE3,height: 13, // 设置slider的高度为15start: 0,end: 100,right: 60,left: 60,bottom: 15,handleIcon:path://M30.9,53.2C16.8,53.2,5.3,41.…...

【PromptCC】遥感图像变化字幕的解耦范式

摘要 以往的方法忽略了任务的显著特异性&#xff1a;对于不变和变化的图像对&#xff0c;RSICC难度是不同的&#xff0c;以一种耦合的方式处理未变化和变化的图像对&#xff0c;这通常会导致变化字幕的混淆。论文链接&#xff1a;https://ieeexplore.ieee.org/stamp/stamp.jsp…...

领克07EM-P诠释原创精神,助力行业向上发展

随着五月悄然而至,北京汽车车展如约召开,各大车企携手全新车型纷纷亮相。5月17日,中国原创汽车品牌领克为用户带来了新品,领克07 EM-P迎来上市。这意味着领克在高端电动轿车市场正式站稳脚跟,出色的产品魅力,也成为很多消费者的优质选择。此次发布会现场,领克07 EM-P共推…...

2.0T275马力,油耗6.3L能加92,5米大7座

探险者固然是一款很好的车型,特别是昆仑巅峰版还带后桥限滑差速器,脱困能力更强。但探险者的价格终归比较高,退而求其次也可以看看全新换代的锐界L,整体实力也不差。新车指导价为22.98-30.98万元,目前终端优惠8800元左右。??优缺点速览优点:1、提供纯燃油和油电混动2、提…...

(文章复现)分布式电源接入配电网承载力评估方法研究

参考文献&#xff1a; [1]郝文斌,孟志高,张勇,等.新型电力系统下多分布式电源接入配电网承载力评估方法研究[J].电力系统保护与控制,2023,51(14):23-33. 1.摘要 随着光伏和风电等多种分布式电源的接入&#xff0c;使得传统配电网的结构及其运行状态发生了较大改变。因此&…...

Typescript interface对象赋值引用还是拷贝的问题

在 TypeScript 中&#xff0c;将一个接口对象赋值给另一个变量时&#xff0c;实际上是传递引用而不是进行数据拷贝。也就是说&#xff0c;两个变量都引用同一个对象&#xff0c;因此对其中一个变量进行修改会影响到另一个变量。 示例 假设我们有一个接口 FontSizeEntity&…...

东部战区演习精彩瞬间呈现之——越海突击篇

东部战区“联合利剑—2024A”演习精彩瞬间呈现之——越海突击篇。战鹰击长空,大鹏刺苍穹;腾龙破巨浪,虎蛟气如虹!越海突击画面震撼发布↓↓↓...

怎样消除工人们对六西格玛培训的抵触情绪?

近年来&#xff0c;企业为了提高产品质量、优化生产流程&#xff0c;纷纷引入了六西格玛管理方法。然而&#xff0c;在实施过程中&#xff0c;不少企业却遭遇了工人们对六西格玛培训的抵触情绪。这种情绪的存在不仅阻碍了六西格玛的推广和应用&#xff0c;也影响了企业的整体运…...