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

java八股文之Redis

1.Rdis常见的使用场景

  1. 缓存
  2. 分布式锁(redision,setnx)
  3. 计数器
  4. 保存token
  5. 消息队列
  6. 延迟队列

2.说明一下缓存雪崩,缓存穿透和缓存击穿以及解决方式

1.缓存雪崩

定义: 缓存雪崩指的是当大量的缓存数据同时失效,或者Redis服务器突然宕机,导致后端数据库突然承受大量请求的压力,从而可能导致数据库崩溃的情况。
解决:
1. 分散缓存过期时间:给缓存设置不同的过期时间,避免同时失效。
2. 使用Rdis集群: 如果是Redis服务器突然宕机导致的雪崩,可以使用Redis集群提高服务的可用性,如(哨兵模式或集群模式)
3. 限流降级:在访问量剧增时,采用限流策略,限制数据库的请求频率;或者采用降级策略,返回备选数据或默认值。

2.缓存穿透

定义:缓存穿透指的是查询一个一定不存在的数据,该数据不存在,每次请求都要到数据库去查询取数据并返回空值。
解决:
1. 布隆过滤器(Bloom Filter):预先判断key是否可能存在,如果布隆过滤器判断key不存在,则直接返回,减少无效查询。
2. 缓存空值:对于查询不存在的数据,也设置一个空值缓存,并设置合理的过期时间。

3. 缓存击穿

定义:缓存击穿是指缓存中某个key在失效的一瞬间,有大量的并发请求过来,这些请求发现缓存过期,就直接请求数据库,从而给数据库带来很大压力。
解决:
1.互斥锁:使用如Redis的setnx命令或其他方式来实现分布式锁,确保同一时间内只有一个线程去加载数据。
2.设置热点数据永不过期:对于热点数据,可以考虑设置永不过期,或者设置一个逻辑过期时间,如果查询发现数据逻辑过期,返回逻辑过期数据,同时开启互斥锁,另起一个线程更新最新热点数据,更新完毕释放锁。

3. 介绍一下双写一致性,并回答如何保证Redis和数据库双写一致性

双写一致性: 当修改了数据库的数据同时也要同时更新redis缓存的数据,缓存好数据库的数据要保持一致
保证双写一致:
1. 延时双删:更新数据前先删除缓存,数据更新完成后,等一会儿再删除一次缓存,但是延时多少不好确定,依然有不一致的可能。
2. 使用读写锁: 当一直性要求较高时,可以使用Redis提供的读写锁。在进行读操作时添加共享锁,可以保证读读不互斥,读写互斥。当进行写操作时,使用排它锁,读写,读读都互斥,来保证双写一致。需要注意的是,读方法和写方法需要使用的是同一把锁。
3. 使用MQ通知:一致性要求不是特别高时,可以使用异步通知的思想。如:数据更新完成之后,使用MQ通知缓存进行删除。保证最终一致。

4.介绍一下Redis的持久化

Redis提供了两种持久化数据的方式,分别是RDB和AOF,实际项目中是两者混用。
RDB: RDB是一个快照文件,将redis存储的数据放到磁盘上,当Redis宕机恢复数据时,方便从RDB的快照文件里面恢复数据。优点是体积小,恢复速度更快,但是有丢失几分钟数据的风险。
AOF: AOF含义是追加文件,他会将redis操作的命令都存储到这个文件中,当Rdis宕机恢复的时候。从这个文件在再次执行一遍命令来恢复数据。优点是丢失数据的风险更小,可以设置刷盘策略,让他每秒批量写入一次命令,这样最多只会丢失一秒的数据。

5.介绍一下Redis数据过期策略

Rdis对数据设置的有效时间过期之后不会立即删除,会按照不同的过期策略进行删除,过期策略有惰性删除和定期删除两种,一般项目中是混用。
惰性删除: redis的key过期后,不会去管他,当使用key时,检查是否过期,如果过期就删除,反之返回key。
定期删除: 每隔一段时间,对一些key进行检查,删除里面过期的key。(每次检查不会全查,只会随机检查一部分,删除其中过期的key)。定期删除有两种模式,SLOW和FAST模式,SLOW模式默认是定时任务,执行频率是10hz,每次不超过25s。FAST模式频率不固定,两次间隔不低于2ms,每次耗时不超过1ms。

6.介绍Redis的数据淘汰策略

先介绍两个概念:LRU和LFU
LRU(Least Recently Used ): 最近最少使用。用当前时间减去最
后一次访问时间,这个值越大则淘汰优先级越高。
LFU(Least Frequently Used): 最少频率使用。会统计每个kev的
访问频率,值越小淘汰优先级越高。

八种淘汰策略

  • noeviction:不淘汰任何key,但是内存满时不允许写入新数据,默认就是这种策略。
  • volatile-ttl:对设置了过期时间的key,比较key的剩余过期时间值,过期时间越小越先被淘汰
  • allkeys-random:对全体key,随机进行淘汰。
  • volatile-random:对设置了过期时间的key,随机进行淘汰。
  • allkeys-lru:对全体key,基于LRU算法进行淘汰。
  • volatile-lru:对设置了过期时间的key,基于LRU算法进行淘汰。
  • allkeys-lfu:对全体key,基于LFU算法进行淘汰。(项目中最常用)
  • volatile-lfu:对设置了过期时间的key,基于LFU算法进行淘汰。

7.介绍一下Redis分布式锁

  1. Redis分布式锁第底层实现是使用了setnx命令去实现的,因为redis底层是单线程的,使用的这个命令之后,只能有一个客户端对某一个key设置值,在没有过期或者删除这个key之前,其他客户端无法设置这个key。
  2. Rdis分布式锁的有效时长,是通过一个叫WatchDog(看门狗)的机制控制的。这个机制每隔一段时间会检查当前业务是否还有锁,如果有则增加持有锁的时间。业务执行完成后释放锁即可。
  3. Redission分布式锁是可以重入的。重入锁的时候,会判断是否是当前线程持有的锁,如果是则将当前线程的锁计数。如果是释放锁,则会在计算上减一。在存储数据的时候采用的是hash结构,大key按照自己的业务规则制定,小key是当前的线程唯一标识,value是当前线程重入的次数。
  4. Redission不能解决主从数据一致性的问题,但是可以用redission提供的红锁来降低这个事情发生的可能。但是这样性能就太低了,如果业务要强一致性,建议采用zookeeper实现的分布式锁。

8.说一下Redis集群

主从复制: Redis集群中有一个主节点和多个从节点,主节点只负责写数据然后同步给从节点,从节点只负责读数据。
哨兵模式: 主要负责实现主从集群的自动故障恢复(监控,自动故障恢复,通知)。主从加哨兵可以解决解决高可用,高并发读的问题,不能解决海量数据存储,高并发写。
分片集群: 集群中有多个master,每个master保存不同数据,同时每个master有自己的从节点。

9.说一下主从同步过程

概念介绍: 主从同步是主节点往从节点同步数据的过程,主从同步分全量同步和增量同步两种,全量同步在第一次同步时使用,之后再同步就是增量同步。
1.Replication Id: 简称replid,是数据集的标记,id一致则说明是同一数据集。每一个master都有唯一的replid,slave则会继承master节点的replid
2.offset: 偏移量,随着记录在repl_baklog中的数据增多而逐渐增大。slave完成同步时也会记录当前同步的offset。如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。

全量同步:

  1. 从节点请求主节点同步数据(replication id、.offset)
  2. 主节点判断是否是第一次请求,是第一次就与从节点同步版本信息(replication id和offset)
  3. 主节点执行bgsave命令,生成rdb文件后,发送给从节点去执行
  4. 在db生成执行期间,主节点变更的数据会以命令的方式记录到缓冲区(一个日志文件)
  5. 主节点把生成之后的命令日志文件发送给从节点进行同步

增量同步

  1. 从节点请求主节点同步数据,主节点判断不是第一次请求,不是第一次就获取从节点的ofst值
  2. 主节点从命令日志中获取offset值之后的数据,发送给从节点进行数据同步

10. 说一下Redis集群脑裂及解决

定义: 集群脑裂是由于主节点和从节点和sentinel(哨兵)处于不同的网络分区,使得sentinel没有能够心跳感知到主节点,所以通过选举的方式提升了一个从节点为主节点,这样就存在了两个主节点,就像大脑分裂了一样,这样会导致客户端还在老的主节点那里写入数据,新节点无法同步数据,当网络恢复后,sentinel会将老的主节点降为从节点,然后再从新masterl同步数据,就会导致老的主节点在网络中断脱离集群到网络恢复加入集群期间写入的的客户端数据丢失。
解决: 我们可以修改rdis的配置,设置最少的能感知到的从节点数量,主节点达不到要求就拒绝客户端请求。同时缩短主从数据同步的延迟时间,避免大量的数据丢失。

11.介绍一下redis分片集群

  • 集群中有多个master,每个master保存不同数据
  • 每个master都可以有多个slave节点
  • master之间通过ping监测彼此健康状态
  • 客户端请求可以访问集群任意节点,最终都会被转发到正确节点
  • 解决高可用,高并发读,海量数据存储,高并发写的问题

12. 说一下Redis分片集群中的数据如何存储和读取

  • Redis分片集群引入了哈希槽的概念,Redis集群有16384个哈希槽
  • 将16384个插槽分配给不同的实例。(实例指的是主节点)
  • 读写数据:根据key的有效部分计算哈希值,对16384取余(有效部分:如果key前面有大括号,大活号的内容就是有效部分,如果没有,则以key本身做为有效部分)余数做为插槽,寻找插槽所在的实例。

13. Redis是单线程的,为什么那么快

  1. Redis是纯内存操作,执行速度非常快
  2. 采用单线程,避免不必要的上下文切换可竞争条件,多线程还要考虑线程安全问题
  3. 使用/O多路复用模型,非阻塞IO

14. 解释一下I/O多路复用模型

名词解释:
socket:客户端的连接
epoll模式: 是指监听Socket,通知的用户socket就绪的一种实现方式,常见实现的有:select,poll,epoll
用户空间:

  1. Liux系统中一个进程使用的内存情况划分两部分:内核空间、用户空间。用户空间只能执行受限的命令(Rig3),而且不能直接调用系统资源,必须通过内核提供的接口来访问 。内核空间 可以执行特权命令(Ring0),调用一切系统资源。
  2. Liux系统为了提高IO效率,会在用户空间和内核空间都加入缓冲区,写数据时,要把用户缓冲数据拷贝到内核缓冲区,然后写入设备。读数据时,要从设备读取数据到内核缓冲区,然后拷贝到用户缓冲区。

1.I/O多路复用
是指利用单个线程来同时监听多个Socket,并在某个Socket可读、可写时得到通知,从而避免无效的等待,充分利用CPU资源。目前的l/O多路复用都是采用的epoll模式实现,epoll模式会在通知用户进程Socket就绪的同时,把已就绪的Socket写入用户空间,不需要挨个遍历Socket来判断是否就绪,提升了性能。

2.Redis网络模型
就是使用l/O多路复用结合事件的处理器来应对多个Socket请求

  • 连接应答处理器
  • 命令回复处理器,在Rdis6.0之后,为了提升更好的性能,使用了多线程来处理回复事件
  • 命令请求处理器,在Rdis6.0之后,将命令的转换使用了多线程,增加命令转换速度,在命令执行的时候,依然是单线程

相关文章:

java八股文之Redis

1.Rdis常见的使用场景 缓存分布式锁(redision,setnx)计数器保存token消息队列延迟队列 2.说明一下缓存雪崩,缓存穿透和缓存击穿以及解决方式 1.缓存雪崩 定义: 缓存雪崩指的是当大量的缓存数据同时失效&#xff0c…...

ubuntu系统下KVM设置桥接网络(失败)

20250216 - 概述 因实验需求,需要设置KVM下的虚拟机采用桥接模式进行通信,这种方式将使虚拟机与主机类似使用同一网段的IP。实际上,为了实现这个功能,我已经在自己mac上VMware使用过,虚拟机获得了自己独立的IP。 但…...

CentOS 7操作系统部署KVM软件和创建虚拟机

CentOS 7.9操作系统部署KVM软件和配置指南,包括如何创建一个虚拟机。 步骤 1: 检查硬件支持 首先,确认您的CPU支持虚拟化技术,并且已在BIOS中启用: egrep -c (vmx|svm) /proc/cpuinfo 如果输出大于0,则表示支持虚拟…...

驱动开发系列38 - Linux Graphics 3D 绘制流程(一)- 创建画布

一:概述 当应用程序创建 OpenGL 上下文时,它通常需要申请帧缓冲(Framebuffer,即画布)。在 X11 体系下,应用程序不会直接向内核的 DRM 模块请求创建帧缓冲,而是通过 X 服务器进行申请。 虽然从技术上讲,应用程序可以直接使用 DRM 接口创建帧缓冲对象(BO),但为了将其与…...

Spring Boot过滤器链:从入门到精通

文章目录 一、过滤器链是什么?二、为什么需要过滤器链?三、Spring Boot中的过滤器链是如何工作的?(一)过滤器的生命周期(二)过滤器链的执行流程 四、如何在Spring Boot中定义自己的过滤器&#…...

QT 读写锁

一、概述 1、读写锁是一种线程同步机制,用于解决多线程环境下的读写竞争问题。 2、读写锁允许多个线程同时获取读锁(共享访问),但只允许一个线程获取写锁(独占访问)。 3、这种机制可以提高并发性能&…...

C++中的智能指针

智能指针总结 智能指针其作⽤是管理⼀个指针,避免程序员申请的空间在函数结束时忘记释放,造成内存泄漏这种情况滴发⽣。使⽤智能指针可以很⼤程度上的避免这个问题,因为智能指针就是⼀个类,当超出了类的作⽤域是,类会…...

IntelliJ IDEA 接入 AI 编程助手(Copilot、DeepSeek、GPT-4o Mini)

IntelliJ IDEA 接入 AI 编程助手(Copilot、DeepSeek、GPT-4o Mini) 📊 引言 近年来,AI 编程助手已成为开发者的高效工具,它们可以加速代码编写、优化代码结构,并提供智能提示。本文介绍如何在 IntelliJ I…...

【R语言】非参数检验

一、Mann-Whitney检验 在R语言中,Mann-Whitney U检验(也称为Wilcoxon秩和检验)用于比较两个独立样本的中位数是否存在显著差异。它是一种非参数检验,适用于数据不满足正态分布假设的情况。 1、独立样本 # 创建两个独立样本数据…...

PyTorch 源码学习:阅读经验 代码结构

分享自己在学习 PyTorch 源码时阅读过的资料。本文重点关注阅读 PyTorch 源码的经验和 PyTorch 的代码结构。因为 PyTorch 不同版本的源码实现有所不同,所以笔者在整理资料时尽可能按版本号升序,版本号见标题前[]。最新版本的源码实现还请查看 PyTorch 仓…...

04运维实用篇(D4_日志)

目录 一、简介 二、代码中使用日志工具记录日志 1. 操作步骤 步骤1:添加日志记录操作 步骤2:设置日志输出级别 步骤3:设置日志组 2. 知识小结 三、优化日志对象创建代码 1. 实例 2. 总结 四、日志输出格式控制 1. 实例 2. 总结 …...

Linux文件管理:硬链接与软链接

文章目录 1. 硬链接的设计目的(1)节省存储空间(2)提高文件管理效率(3)数据持久性(4)文件系统的自然特性 2. 软链接的设计目的**(1)跨文件系统引用****&#x…...

【零基础学Mysql】常用函数讲解,提升数据操作效率的利器

以耳倾听世间繁华,以语表达心中所想 大家好,我是whisperrrr. 前言: 大家好,我是你们的朋友whisrrr。在日常工作中,MySQL作为一款广泛使用的开源关系型数据库,其强大的功能为我们提供了便捷的数据存储和管理手段。而在…...

小米平板怎么和电脑共享屏幕

最近尝试使用小米平板和电脑屏幕分屏互联 发现是需要做特殊处理的,需要下载一款电脑安装包:小米妙享 关于这个安装包,想吐槽的是: 没有找到官网渠道,是通过其他网络方式查到下载的 不附录链接,原因是因为地…...

宝藏软件系列 篇一:My APK(Android)

文章目录 系列文章官方网站特色功能同类软件 系列文章 官方网站 My APK 官方版本是在 谷歌商店 中上架的。 官方下载地址:Google Play 商店页面。(需要外网) 2025.2最新版本的CSDN本地下载地址(因为是Android App Bundle&…...

本地 Ollama 部署 Deepseek R1 并使用 Spring AI Alibaba 构建 Chat 应用示例

本地部署 Deepseek R1 并使用 Spring AI Alibaba 构建 Chat 应用示例 Ollama 部署 Deepseek R1 官网:https://www.deepseek.com/ Github:https://github.com/deepseek-ai Ollama:https://ollama.com/ Docker Compose 部署一个 Ollama 和…...

centos8.0 docker ngnix

问题1:镜像拉取不下来,用DAO云加速器 问题2:ngnix镜像不能运行, 无法检索OCI运行时错误 在CentOS上使用Docker来运行Nginx是一个常见的做法,因为它提供了快速、一致的环境配置方式,并且可以很容易地扩展。…...

位运算在数据库中的运用实践-以MySQL和PG为例

目录 前言 一、两种不同的数据库设计 1、状态字段存储JSON 2、使用位运算 二、数据库中的位运算实践 1、MySQL中的位运算实践 2、PostgreSQL中位运算实践 三、总结 前言 最近在解决某用户的一个业务需求时,遇到一个很有意思的场景。首先先跟大家分享一下需…...

IoTDB 常见问题 QA 第五期

关于 IoTDB 的 Q & A 情人节之际,让 IoTDB Q&A 陪您一起共度解惑!我们将定期汇总我们将定期汇总社区讨论频繁的问题,并展开进行详细回答,通过积累常见问题“小百科”,方便大家使用 IoTDB。 Q1:导入…...

【kafka系列】日志存储设计 消息写入、读取

目录 日志存储设计 1. 日志存储的目录结构 2. 日志内容格式设计 3. 日志索引设计 4. 设计优势 消息写入流程 示例 流程图 消息读取流程 示例 关键设计细节 流程图 日志存储设计 Kafka的日志存储是其高吞吐、持久化能力的核心设计,其结构包含目录组织、…...

Python实现语音识别详细教程【2025】最新教程

文章目录 前言一、环境搭建1. 下载 Python2. 安装 Python3 使用 pip 安装必要的库 二、使用 SpeechRecognition 库进行语音识别1.识别本地音频文件2.实时语音识别3. 使用其他语音识别引擎 注意事项 前言 以下是一份较为完整的 Python 语音识别教程,涵盖环境搭建、使…...

【一文读懂】HTTP与Websocket协议

HTTP协议 概述 HTTP (Hypertext Transfer Protocol),即超文本传输协议,是一种用于在客户端和服务器之间传输超文本(例如网页、图片、音频、视频等)的通信协议。它是万维网(WWW)的基础,负责在浏…...

SpringBoot+微信小程序+数据可视化的宠物到家喂宠服务(程序+论文+讲解+安装+调试+售后等)

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在经济高速发展、物质生活极大丰富的当下,人们的精神需求愈发凸显&#xff0…...

Windows逆向工程入门之堆栈结构与信息获取

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 1. 堆栈结构基础 堆栈的主要操作: 2. 代码功能解析 2.1 加载 ntdll.dll 2.2 获取 NtQueryInformationThread 函数指针 2.3 调用 NtQueryInformationThread 获取线程信息…...

springboot项目如何部署到tomcat中

1、使用springboot内部嵌入的tomcat 可以改一些tomcat的参数 2、可以把springboot项目打包为war包,然后部署到tomcat中去 Spring Boot 默认使用嵌入式 Tomcat 作为其 Web 容器,这使得 Spring Boot 应用可以作为一个独立的 JAR 文件运行。这种嵌入式服务…...

C语言之easyX

目录 概要 easyX整体架构 图形绘制 画布宽高 圆形 图片的贴图 加载图像 游戏框架 概要 easyX是一个轻量级的图形库,用于在Windows平台上进行简单的2D图形绘制。它提供了一组简单易用的函数,可以方便地绘制基本的图形元素,如线条、矩形、圆形…...

es6箭头函数和普通函数的区别

在JavaScript中,函数是执行特定任务的代码块。函数可以被定义并且随后被调用。JavaScript中有两种主要的函数定义方式:普通函数声明和箭头函数表达式。下面是这两种函数的定义方式及其区别和使用场景: 普通函数声明 普通函数可以通过函数声明…...

DeepSeek R1 32B 本地部署实战

#DeepSeek# DeepSeek是一款基于人工智能的智能助手,专为提升工作效率和信息获取能力而设计。它结合了自然语言处理、机器学习和大数据技术,能够快速理解用户需求并提供精准的答案或解决方案。 DeepSeek的核心功能 智能问答 DeepSeek可以回答各种问题&…...

八、SPI读写XT25数据

8.1 SPI 简介 SPI(Serial Peripheral Interface,串行外设接口)是一种同步串行通信协议,广泛用于嵌入式系统中连接微控制器与外围设备,如传感器、存储器、显示屏等。 主要特点 1. 全双工通信:支持同时发送…...

AIP-145 范围

编号145原文链接AIP-145: Ranges状态批准创建日期2020-05-28更新日期2020-05-28 服务通常需要表示具体值或连续值的范围。这些范围的含义存在诸多差异,也存在许多数据类型:整数、浮点数、时间戳等(在此仅举几例)。根据所讨论范围…...

(学习总结24)Linux 基本命令2

Linux 基本命令2 操作文件或目录命令更改文件或目录访问权限命令 chmod修改文件的所有者和所属组命令 chown修改文件或目录的所属组命令 chgrp更改文件或目录的属性命令 chattr创建文件和目录时的默认权限掩码命令 umask判断文件类型命令 file显示文件或文件系统状态命令 stat树…...

WPF-数据转换器

一、单值转换器 1.不传参数 转换器 当Value值大于100时返回红色 public class DataConverter : IValueConverter{/// <summary>/// 表示从源到目标数据转换/// </summary>/// <param name"value">数据源的值</param>/// <param name&q…...

STM32 I2C通信协议说明

目录 背景 I2C协议 数据的有效性 I2C通信开始和停止条件 I2C数据传输 发送 响应 正常情况&#xff1a; 异常情况&#xff1a; 主机结束接收 写寄存器的标准流程 读寄存器的标准流程 仲裁机制 时钟同步 SDA线的仲裁 程序 背景 对单片机的三大通信中的I2C通信进…...

网络工程师 (42)IP地址

一、定义与功能 IP地址是IP协议提供的一种统一的地址格式&#xff0c;它为互联网上的每一个网络和每一台主机分配一个逻辑地址&#xff0c;以此来屏蔽物理地址的差异。这种地址分配方式确保了用户在连网的计算机上操作时&#xff0c;能够高效且方便地从众多计算机中选出自己所需…...

Deepseek实用万能提问模板

一&#xff0c;背景需求约束条件 背景:提供与问题相关的时间、地点、人物、事件等信息&#xff0c;帮助 DeepSeek 更好地理解问题的情境。 需求:清晰明确地阐述你希望 DeepSeek完成的任务或提供的信息。 约束条件:可根据具体情况&#xff0c;对回答的范围、格式、字数等进行…...

强化学习笔记7——DDPG到TD3

前提&#xff1a;基于TD 的方法多少都会有高估问题&#xff0c;即Q值偏大。原因两个&#xff1a;一、TD目标是真实动作的高估。 二&#xff1a;自举法高估。 DDPG 属于AC方法&#xff1a;异策略&#xff0c;适合连续动作空间&#xff0c;因为他的策略网络直接输出的动作&#…...

传统混合专家模型MoE架构详解以及python示例(DeepSeek-V3之基础)

我们已经了解到DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。而DeepSeekMoE架构的底层模型采用了混合专家模型(Mixture of Experts,MoE)架构。所以我们先了解一下传统混合专家模型MoE架构。 一、传统混合专家模…...

开源协议深度解析:理解MIT、GPL、Apache等常见许可证

目录 前言1. MIT协议&#xff1a;自由而宽松的开源许可1.1 MIT协议的主要特点1.2 MIT协议的适用场景 2. GPL协议&#xff1a;自由软件的捍卫者2.1 GPL协议的核心理念2.2 GPL协议的适用场景 3. Apache License 2.0&#xff1a;开源与专利保护的平衡3.1 Apache License 2.0的主要…...

三维重建(十二)——3D先验的使用

文章目录 零、最近感受和前言一、使用能够快速得到重建初始化的方法1.1 Colmap(多视角)1.2 深度估计(单视角)二、已知形状模板2.1 人脸2.2 人体2.3 动物三、刚性与非刚性约束(变形约束)3.1 刚性变形3.2 非刚性变形四、统计(深度学习)先验——从大量(3D)数据中提取信息…...

Java项目《苍穹外卖》BUG修复记录

一、订单详情地址显示为null 原因&#xff1a;查看订单详情接口中&#xff0c;未设置收货地址信息&#xff0c;故地址返回为null。 解决方案&#xff1a; 1、OrderServiceImpl中创建一个私有方法专门获取订单收货地址 /*** 获取订单收获地址* param addressBookId* return*/…...

DockerDesktop更改默认的磁盘镜像地存储位置

DockerDesktop更改默认的磁盘镜像地存储位置 文章目录 DockerDesktop更改默认的磁盘镜像地存储位置1. 默认存储位置2. 新建一个目录3. 将磁盘镜像存储位置改为新建的目录下 1. 默认存储位置 2. 新建一个目录 如&#xff1a;D:\DiskImagelocationData 3. 将磁盘镜像存储位置改为…...

阿里云视频点播,基于thinkphp8上传视频

前端参考官方示例(jQuery版) <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>阿里云 JavaScript上传SDK Demo (使用jquery)</title><script src"__STATIC__/jquery.min.js"></script><sc…...

C# windowForms 的DataGridView控件的使用

C# Windows Forms DataGridView 控件使用详解 DataGridView 是 Windows Forms 中用于显示和编辑表格数据的核心控件。它支持高度自定义的列类型、数据绑定、事件处理和丰富的样式配置。以下是其详细使用方法。 目录 基础使用 数据绑定 列类型与自定义...

【NLP 22、语言模型 language model】

有时候我也想听听&#xff0c;我在你心里&#xff0c;是什么样子 —— 25.1.12 一、什么是语言模型 语言是灵活的&#xff0c;也是有规律的 了解一门语言的人可以判断一句话是否“合理” 通俗来讲&#xff0c;语言模型用来评价一句话(句子可以看作是字的组合)是否“合理”或…...

vtkCamera类的Dolly函数作用及相机拉近拉远

录 1. 预备知识 1.1.相机焦点 2. vtkCamera类的Dolly函数作用 3. 附加说明 1. 预备知识 要理解vtkCamera类的Dolly函数作用,就必须先了解vtkCamera类表示的相机的各种属性。  VTK是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面,如…...

2025 N1CTF crypto 复现

近一个月都没有学习了&#xff0c;一些比赛也没有打&#xff0c;很惭愧自己还是处在刚放假时的水平啊&#xff0c;马上开学了&#xff0c;抓紧做一些训练来康复。 CheckIn import os from Crypto.Util.number import * from secret import FLAGp, q getPrime(512), getPrime…...

大模型开发实战篇5:多模态--文生图模型API

大模型文生图是一种基于人工智能大模型的技术&#xff0c;能够将自然语言文本描述转化为对应的图像。目前非常火的AI大模型赛道&#xff0c;有很多公司在此赛道竞争。详情可看这篇文章。 今天我们来看下如何调用WebAPI来实现文生图功能。我们一般都会将OpenAI的接口&#xff0…...

Jvascript网页设计案例:通过js实现一款密码强度检测,适用于等保测评整改

本文目录 前言功能预览样式特点总结&#xff1a;1. 整体视觉风格2. 密码输入框设计3. 强度指示条4. 结果文本与原因说明 功能特点总结&#xff1a;1. 密码强度检测2. 实时反馈机制3. 详细原因说明4. 视觉提示5. 交互体验优化 密码强度检测逻辑Html代码Javascript代码 前言 能满…...

Macos机器hosts文件便捷修改工具——SwitchHosts

文章目录 SwitchHosts软件下载地址操作添加方案切换方案管理方案快捷键 检测 SwitchHosts SwitchHosts 是一款 Mac 平台上的免费软件&#xff0c;它可以方便地管理和切换 hosts 文件&#xff0c;支持多种 hosts 文件格式。 软件下载地址 SwitchHosts 操作 添加方案 添加 …...

vLLM专题(四)-故障排除

本文件概述了一些您可以考虑的故障排除策略。如果您认为发现了一个 bug,请首先搜索现有的问题,看看是否已经有人报告。如果没有,请提交一个新问题,并尽可能提供相关的详细信息。 注意 一旦您调试完问题,请记得关闭任何已定义的调试环境变量,或者简单地启动一个新 shell,…...