Redis设计与实现——Redis命令参考与高级特性
Redis命令参考
数据类型相关命令
- SET:设置键值,支持过期时间、不存在/存在条件。
- GET:获取键值,若键不存在返回
nil
。 - INCR/DECR:将键的整数值增1/减1,键不存在时初始化为0。
- MSET/MGET:批量设置/获取多个键值。
- LPUSH/RPUSH:从列表左/右侧插入元素。
- LPOP/RPOP:移除并返回列表左/右侧第一个元素。
- LRANGE:获取列表指定范围的元素。
- HSET/HGET:设置/获取哈希字段值。
- HGETALL:获取哈希所有字段和值。
- HINCRBY:哈希字段整数值增加指定数值。
- SADD/SREM:添加/移除集合元素。
- SMEMBERS:返回集合所有元素(慎用大集合)。
- SINTER/SUNION:返回多个集合的交集/并集。
- ZADD:添加带分值的成员到有序集合。
- ZRANGE/ZREVRANGE:按分值升序/降序返回有序集合成员。
- ZINCRBY:增加有序集合成员的分值。
事务与脚本
- MULTI:开启事务,后续命令入队。
- EXEC:执行事务队列中的所有命令。
- WATCH/UNWATCH:监视键变化,若被修改则事务中止。
- EVAL:执行Lua脚本,支持原子性操作。
- EVALSHA:通过SHA1执行缓存的脚本。
- SCRIPT LOAD:加载脚本到缓存,返回SHA1摘要。
持久化与备份
- SAVE:同步生成RDB快照,阻塞主线程。
- BGSAVE:异步生成RDB快照,子进程执行。
- LASTSAVE:返回最后一次成功生成RDB的时间戳。
- BGREWRITEAOF:异步重写AOF文件,优化体积。
- APPEND:追加值到键(底层AOF操作)。
集群与高可用
- SLAVEOF/REPLICAOF:将当前节点设置为指定主节点的从节点。
- CLUSTER INFO:返回集群基本信息(状态、槽分配)。
- CLUSTER NODES:列出集群所有节点的详细信息。
- CLUSTER ADDSLOTS:将指定哈希槽分配给当前节点。
- SENTINEL MASTERS:列出被监控的主节点信息。
- SENTINEL GET-MASTER-ADDR-BY-NAME:获取主节点地址。
系统管理与监控
- CLIENT LIST:列出所有客户端连接信息。
- CLIENT KILL:关闭指定客户端连接。
- INFO:返回服务器状态信息(内存、CPU、复制等)。
- SLOWLOG:查看慢查询日志。
- MONITOR:实时监控所有命令(生产环境慎用)。
高级功能
- SUBSCRIBE/PUBLISH/UNSUBSCRIBE:订阅/发布/取消订阅频道消息。
- GEOADD:添加地理位置坐标。
- GEODIST:计算两地距离。
- GEORADIUS:返回指定半径内的位置。
其他实用命令
- KEYS/SCAN:查找匹配模式的键(
SCAN
非阻塞迭代)。 - TTL/PTTL:获取键的剩余过期时间(秒/毫秒)。
- EXPIRE/PEXPIRE:设置键的过期时间(秒/毫秒)。
- TYPE:返回键的数据类型。
- DEL:删除指定键。
事务
事务的核心命令
- MULTI:标记事务开始,后续命令按顺序入队,暂不执行。
- EXEC:执行事务队列中的所有命令,返回各命令的结果。
- DISCARD:取消事务,清空命令队列。
- WATCH <key>:监视指定键,若事务执行前键被修改,则事务终止(类似 CAS 机制)。
- UNWATCH:取消所有
WATCH
监控。
事务的特性
- 原子性:
EXEC
执行时,所有命令按顺序一次性执行,不会被其他客户端命令打断。 - 无回滚:若命令入队时语法错误,事务直接拒绝执行;运行时错误(如对字符串执行
INCR
)会继续执行后续命令。 - 隔离性:事务执行期间不会被其他客户端操作干扰(单线程模型保证)。
- 无持久性:是否持久化取决于 Redis 的持久化配置(RDB/AOF)。
适用场景
- 批量操作原子性:如批量更新计数器、配置项。
- 简单 CAS 操作:结合
WATCH
实现乐观锁,避免竞态条件(如库存扣减、余额转账)。 - 非回滚型任务:无需回滚的连续操作(如日志记录、状态标记)。
生产环境建议
- 避免长事务:事务队列命令过多会阻塞其他客户端,影响性能。
- 优先使用 Lua:复杂逻辑用 Lua 脚本替代事务,减少网络开销。
- 合理使用 WATCH:监控最少数量的键,降低冲突概率。
Lua脚本
Lua 脚本的核心优势
- 原子性:脚本整体执行,期间不会被其他命令中断,保证数据一致性。
- 减少网络开销:合并多个操作到单个脚本,减少客户端与服务端的通信次数。
- 复杂逻辑支持:支持条件判断、循环、变量等编程结构,灵活处理业务逻辑。
- 高性能:脚本在服务端执行,避免多次网络往返,提升吞吐量。
Lua 脚本的执行方式
-
EVAL 命令格式:
EVAL <script> <numkeys> [KEYS...] [ARGV...]
- script:Lua 脚本代码。
- numkeys:键参数的数量(
KEYS
数组长度)。 - KEYS:键名列表(避免硬编码,通过参数传递)。
- ARGV:额外参数列表(如数值、标志位)。
-
缓存脚本执行
- 预加载脚本:
SCRIPT LOAD "return redis.call('GET', KEYS[1])"
- 通过 SHA1 执行:
EVALSHA abcdef12345... 1 user:1
- 预加载脚本:
Lua 脚本与 Redis 命令的交互
-
调用 Redis 命令
-
redis.call():执行 Redis 命令,若命令出错(如键不存在),直接返回错误并终止脚本。
local value = redis.call('GET', KEYS[1])
-
redis.pcall():执行 Redis 命令,出错时返回 Lua 错误表,脚本继续执行。
local ok, result = pcall(redis.call, 'GET', KEYS[1])
-
-
参数传递与返回值
-
键和参数分离:
KEYS
和ARGV
是 Lua 表(数组),索引从 1 开始;严格区分键和参数,避免逻辑混乱。 -
返回值处理:脚本最终返回值会被转换为 Redis 协议格式(Lua表转为多行回复);支持返回
nil
对应(Redis的NULL
回复)。
-
Lua 脚本的使用原则
-
原子性与阻塞
- 长时间脚本阻塞:脚本执行期间阻塞其他操作,需避免复杂循环或大量计算;单个脚本执行时间控制在ms级,必要时拆分逻辑。
-
沙盒环境限制
- 禁用危险操作:无法访问文件系统、网络或调用外部命令;禁止定义全局变量(需使用
local
声明局部变量)。
- 禁用危险操作:无法访问文件系统、网络或调用外部命令;禁止定义全局变量(需使用
-
脚本复用性
-
参数化设计:键和参数通过
KEYS
/ARGV
传递,避免硬编码,提高脚本通用性。 -
版本兼容性:不同 Redis 版本支持的 Lua 库函数可能不同(如
redis.breakpoint()
仅限调试模式)。
-
排序
排序参数详解
- ASC/DESC:升序(默认)或降序排序。
- ALPHA:按字典序排序字符串元素。
- BY <pattern>:按外部键的值排序(如
user:*:age
)。 - GET <pattern>:排序后返回外部键的值(可多次使用)。
- LIMIT offset count:分页获取结果(类似 SQL 的
LIMIT
)。 - STORE <key>: 将排序结果存入新键(列表类型)。
排序的工作原理
- 数据加载:从列表、集合或有序集合中提取元素;若使用
BY
或GET
,加载外部键的值到内存。 - 排序执行:默认按数值比较(
ALPHA
启用字符串比较);使用快速排序算法,时间复杂度 O(N log N)。 - 结果处理:应用
LIMIT
分页;按GET
返回指定数据或直接返回元素;若指定STORE
,将结果保存为新列表。
发布与订阅
核心机制
- 角色:
- 发布者(Publisher):通过
PUBLISH <channel> <message>
发送消息到频道。 - 订阅者(Subscriber):通过
SUBSCRIBE <channel>
订阅频道,或PSUBSCRIBE <pattern>
按模式匹配订阅(如news.*
)。 - 退订:
UNSUBSCRIBE
或PUNSUBSCRIBE
取消订阅。
- 发布者(Publisher):通过
- 消息传递:消息从发布者直接推送到所有订阅者,无中间存储;消息不可回溯,订阅者断开后重连会丢失未连接期间的消息。
关键命令与行为
- SUBSCRIBE channel1:订阅指定频道。
- PSUBSCRIBE news.*:按模式订阅所有以
news.
开头的频道。 - PUBLISH channel1 “Hello”:向
channel1
发布消息 “Hello”。 - UNSUBSCRIBE:退订所有频道。
慢查询日志
核心配置参数
-
slowlog-log-slower-than
-
作用:定义慢查询的时间阈值(单位:微秒,1秒=1,000,000微秒)。
-
示例
config set slowlog-log-slower-than 10000 # 记录超过10毫秒的命令
-
-
slowlog-max-len
-
作用:设置慢查询日志的最大条目数(内存中存储,先进先出)。
-
示例
config set slowlog-max-len 500 # 最多保存500条慢查询记录
-
查看与分析慢查询日志
- SLOWLOG GET [n]:查看最新的n条记录(默认全部)。
- SLOWLOG LEN`:查看当前日志条目数。
- SLOWLOG RESET:清空慢查询日志。
监视器
MONITOR 的功能与使用
- 启用监控:客户端执行
MONITOR
后,Redis 会将该连接转为监控模式,实时打印所有命令及其参数: - 输出格式:
- 时间戳:命令执行的精确时间(秒.微秒)。
- 客户端信息:数据库编号、客户端 IP 和端口。
- 命令内容:完整的命令及参数。
MONITOR 的性能影响
- 高并发写入: 每个命令都会触发 MONITOR 输出,占用大量 CPU 和带宽,可能拖慢 Redis 整体性能。
- 监控客户端网络延迟:MONITOR 输出量大时,可能阻塞客户端连接,导致其他操作延迟。
- 内存消耗:Redis 需为每个监控连接维护输出缓冲区,内存压力增大。
相关文章:
Redis设计与实现——Redis命令参考与高级特性
Redis命令参考 数据类型相关命令 SET:设置键值,支持过期时间、不存在/存在条件。GET:获取键值,若键不存在返回 nil。INCR/DECR:将键的整数值增1/减1,键不存在时初始化为0。MSET/MGET:批量设置…...
TCP/UDP协议原理和区别 笔记
从简单到难吧 区别就是TCP一般用于安全稳定的需求,UDP一般用于不那么需要完全数据的需求,比如说直播,视频等。 再然后就是TPC性能慢于UDP。 再然后我们看TCP的原理(三次握手,数据传输,四次挥手࿰…...
JavaScript基础-对象的相关概念
在JavaScript中,对象是核心的数据结构之一,几乎所有的高级功能都围绕着对象展开。理解对象的基本概念、创建方法以及操作方式对于掌握JavaScript至关重要。本文将详细介绍JavaScript中对象的相关概念,包括对象的定义、属性的操作、原型链和面…...
如何通过交流沟通实现闭环思考模式不断实现自身强效赋能-250517
感谢一直以来和我交流沟通的朋友们。 闭环思考 文字部分(25-05-04)这一天是青年节,在这一天与青年朋友交流这个是事先规划好的: “可以猜一猜,博士会被撤销吗?导师会被处理吗?千万不要回复&…...
震荡指标工具
一、引言 - 可视化数字烛台工具是对传统蜡烛图的补充,旨在帮助交易者更有效地进入和退出交易,提高交易利润。 - 通过分析蜡烛图,结合烛台震荡指标,提出了一个辅助视觉工具来辅助交易决策。 二、烛台指标与交易策略 -图表通过平均开…...
【自然语言处理与大模型】大模型(LLM)基础知识④
(1)微调主要用来干什么? 微调目前最主要用在定制模型的自我认知和改变模型对话风格。模型能力的适配与强化只是辅助。 定制模型的自我认知:通过微调可以调整模型对自我身份、角色功能的重新认知,使其回答更加符合自定义…...
返回码的方案对比和思考
前言 一般我们定义 Restful 接口返回码,常见的就是 const 定义 code , StatusToText() 来实现定义 msg, 在封装1 ~ 2个返回方法(success、error)就可以实现,只是突然想到这样设计是违反开闭原则的…...
Flink 的任务槽和槽共享
在 Apache Flink 中,任务槽(Task Slot) 和 槽共享组(Slot Sharing Group) 是资源管理和任务调度的关键机制。它们决定了 Flink 如何在集群中分配资源并执行任务。 一、任务槽(Task Slot) 1. 定…...
实验七 基于Python的数字图像水印算法
一、实验目的 掌握图像水印的应用; 掌握我国版权保护的发展现状; 掌握常见的数字图像水印算法。 二、实验内容 学习内容补充: 数字水印的鲁棒性评价主要采用含水印图像提取出的水印与原始水印的相似程度,使用归一化相关(NC,Nor…...
C语言:在 Win 10 上,gcc 如何编译 gtk 应用程序
在 Windows 10 上使用 g(或 gcc)编译基于 GTK 的 C 语言程序是完全可行的,且相比 Tcc 更为推荐,因为 g(GNU 编译器套件)对 GTK 的支持更加完善,配置也更简单。以下是详细步骤和注意事项…...
Vue.js---watch 的实现原理
4.7 watch 的实现原理 watch本质上就是使用了effect以及options.scheduler 定义watch函数: // watch函数:传入参数source以及回调函数function watch(source , cb) {effect(() > source.foo,{scheduler(){// 回调函数cb()}})}watch接收两个参数分别是source和c…...
Linux_ELF文件
目录 前言: 一、ELF文件的类型 二、ELF文件的组成格式 1. ELF头部(ELF Header) 2. 节头表(Section Header Table) 3. 程序头表(Program Header Table) 4. 节(Sections)与段(Segments) 三、ELF文件从形成到加载轮廓 1、ELF可执行文件形成过程 2、 可执行文…...
磁盘I/O子系统
一、数据写入磁盘流程 当执行向磁盘写入数据操作的时候,会发生如下的一系列基本操作。假设文件数据存在于磁盘扇区上,并且已经被读入到页缓存中。 进程使用write()系统调用写入文件。内核更新映射到文件的page cache。内核线程pdflush负责把页缓存刷入…...
【2025 技术指南】如何创建和配置国际版 Apple ID
想要体验更丰富的应用生态、使用国际版专属服务,或访问更多开发者工具?一个国际版 Apple ID 能帮你实现这些需求。本教程将详细介绍如何注册国际版 Apple ID 并正确配置支付信息,全程操作简单,适合开发者和技术爱好者参考。 一、准…...
C++(20): 文件输入输出库 —— <fstream>
目录 一、 的核心功能 二、核心类及功能 三、核心操作示例 1. 文本文件写入(ofstream) 2. 文本文件读取(ifstream) 3. 二进制文件操作(fstream) 四、文件打开模式 五、文件指针操作 六、错误处理技巧…...
05、基础入门-SpringBoot-HelloWorld
05、基础入门-SpringBoot-HelloWorld ## 一、Spring Boot 简介 **Spring Boot** 是一个用于简化 **Spring** 应用初始搭建和开发的框架,旨在让开发者快速启动项目并减少配置文件。 ### 主要特点 - **简化配置**:采用“约定优于配置”的原则,减…...
深入理解指针(6)
目录 1 sizeof和strlen的对⽐ 1.1 sizeof 编辑1.2strlen 1.3 sizeof 和 strlen的对⽐ 2 数组和指针笔试题解析 2.1 ⼀维数组 编辑 2.2 字符数组 3 指针运算笔试题解析 3.1 题⽬1: 编辑3.2 题目2 3.3 题目3 3.4 题目4 3.5 题目5 3.6 题目6 3.7…...
力扣HOT100之二叉树:108. 将有序数组转换为二叉搜索树
这道题之前做过,思路又给忘了,这道题用递归做是最简单的。 由于得到的数组是有序的,我们只需要取出中间位置的元素medium作为根节点,然后medium左边的剩余元素组成根节点的左子树,medium右边的剩余元素组成根节点的右子…...
手撕I2C和SPI协议实现
手撕I2C和SPI协议实现 目录 I2C协议原理I2C位操作实现I2C驱动代码编写SPI协议原理SPI位操作实现SPI驱动代码编写 I2C协议原理 I2C(Inter-Integrated Circuit)是一种串行通信总线,使用两根线:SCL(时钟线)…...
452. Minimum Number of Arrows to Burst Balloons
题目描述 这道题用leetcode官方的解答反而搞复杂了。本题其实就是求重叠区间的交集。先按照区间左端点从小到大排序。然后拿出第一个区间作为【当前区间交集】的初始值。遍历后面的区间看那个区间和【当前交集】是否有重叠。如果有重叠则将【当前交集】和【当前区间】求交集并更…...
React 中,闭包陷阱
文章目录 前言1. 经典闭包陷阱示例过期状态问题 2. 解决方案2.1 正确声明依赖数组2.2 使用 useRef 捕获最新值**2.3 使用函数式更新(针对状态更新)****2.4 使用 useCallback 冻结闭包** **3. 异步操作中的闭包陷阱****事件监听示例** **4. 自定义 Hooks …...
代码复现5——VLMaps
项目地址 1 Setup # 拉取VLMaps仓库,成功运行后会在主目录生成文件夹vlmapsgit clone https://github.com/vlmaps/vlmaps.git#通过 conda 创建虚拟环境conda create -n vlmaps python=3.8 -yconda activate vlmaps #激活环境cd vlmaps # 切换到项目文件下bash install.ba…...
qt6 c++操作qtableview和yaml
保存qtableview数据到yaml文件从yaml文件读取数据到qtableview qtableview在UI界面拖放。 代码是问chat百度的深度探索。 - name: a1address: db1.dbw10type: int - name: a2address: db1.dbx1.0type: bool写到yaml,写前检查 bool plot1::isRowValid(const QStan…...
使用UniApi调用百度地图API的需要注意的地方
目录 前言 一、百度开放平台 1、功能简介 2、地点搜索服务 3、按行政区划检索API 二、Uniapi集成百度API 1、API集成流程 2、访问接口的定义 3、业务调用集成 三、可能遇到的问题 1、指定输出格式无效 2、返回数据的总数 四、总结 前言 在之前的系列博客中…...
(9)python开发经验
文章目录 1 os.path.join()拼接路径2 条件变量3 添加临时环境变量 更多精彩内容👉内容导航 👈👉Qt开发 👈👉python开发 👈 1 os.path.join()拼接路径 os.path.join() 是 Python 中处理文件路径拼接的核心函…...
windows 10 做服务器 其他电脑无法访问,怎么回事?
一般我们会先打开win10自己的防火墙策略,但是容易忽略 电脑之间 路由器上的防火墙,此时也需要查看一下,可以尝试先关闭路由器防火墙,如果可以了,再 设置路由器上的防火墙规则。 将路由器的上网设置 改成 路由模式 &a…...
mysql中limit深度分页详细剖析【爽文】
目录 一 mysql中limit深度分页 1.1 背景描述 1.2 mysql深度分页很慢原因 1.2.1 mysql的sql执行流程 1.2.2 mysql的深度分页很慢原因 1.3 解决办法 1.3.1 覆盖索引 1.3.2 子查询 1.3.3 标签查询 1.3.4 分区表 一 mysql中limit深度分页 1.1 背景描述 Limit深度分页造…...
【C++ Qt】布局管理器
每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 🤔绪论: 在Qt开发中,界面布局的合理设计是提升用户体验的关键。早期,开发者常采用绝对定位的方式摆放控件,即通…...
Windows系统永久暂停更新操作步骤
目录 Windows系统永久暂停更新操作步骤 打开运行窗口进入注册表编辑器 导航路径图示 新建并配置DWORD值 新建值操作图示数值设置图示 在系统设置中应用暂停 暂停选项图示 注意事项 打开运行窗口 按下键盘上的 Win键 R 组合键,调出“运行”对话框。 进入组策略编…...
Java IO流进阶实战详解(含文件读写、拷贝、加密、字符集)
本文基于 Java 原生 IO 流,从最基础的字节流到字符流,再到实战案例(如文件夹拷贝、文件加密等)进行逐步深入讲解。适合有一定 Java 基础、希望掌握文件读写操作的。 一、前言 Java IO(输入输出)是我们日常…...
JavaScript【7】BOM模型
1.概述: BOM(Browser Object Model,浏览器对象模型)是 JavaScript 中的一个重要概念,它提供了一系列对象来访问和操作浏览器的功能和信息。与 DOM(Document Object Model)主要关注文档结构不同&…...
STM32F10xx 参考手册
6. 什么是寄存器 本章参考资料:《STM32F10xx 参考手册》、《STM32F10xx数据手册》、 学习本章时,配合《STM32F10xx 参考手册》“存储器和总线架构”及“通用I/O(GPIO)”章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。…...
使用instance着色
本节我们学习使用instance着色器进行着色 //拾取var handler new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);handler.setInputAction(function(movement){console.log(movement);var pickedObject viewer.scene.pick(movement.position);if(Cesium.defined(picke…...
MySQL——4、表的约束
表的约束 1、空属性2、默认值3、列描述4、zerofill5、主键6、自增长7、唯一键8、外键9、综合案例 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性…...
Datawhale PyPOTS时间序列5月第3次笔记
下游任务的两阶段(two-stage) 处理 下载数据并预处理的程序: # ------------------------------- # 导入必要的库 # ------------------------------- import numpy as np import torch from benchpots.datasets import preprocess_physionet2012 from pypots.imp…...
初探Reforcement Learning强化学习【QLearning/Sarsa/DQN】
文章目录 一、Q-learning现实理解:举例:回顾: 二、Sarsa和Q-learning的区别 三、Deep Q-NetworkDeep Q-Network是如何工作的?前处理:Convolution NetworksExperience Replay 一、Q-learning 是RL中model-free、value-…...
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 12.曲面细分
1. 曲面细分 曲面细分着色器(Tessellation Shader)是OpenGL 4.0及以上版本引入的一种可编程着色器阶段,用于在GPU上对几何体进行细分,将粗糙的多边形网格自动细分为更平滑、更精细的曲面。它主要用于实现高质量的曲面渲染&#x…...
8天Python从入门到精通【itheima】-14~16
目录 第二章学习内容总体预览: 14节-字面量: 1.学习目标:编辑 2.Python中6大常用数据类型: 3.实现:整数、浮点数、字符串类型的数据输出 4.字面量的定义: 5.小节总结 15节-注释: 1.le…...
Spring Boot 项目的计算机专业论文参考文献
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
linux线程基础
1. 什么是线程 进程是承担系统资源分配的基本实体,而线程(Thread)是进程内的一个执行单元,是CPU调度的基本单位。一个进程可以包含多个线程,这些线程共享进程的地址空间和资源(如文件描述符、全局变量等&a…...
进阶-数据结构部分:3、常用查找算法
飞书文档https://x509p6c8to.feishu.cn/wiki/LRdnwfhNgihKeXka7DfcGuRPnZt 顺序查找 查找算法是指:从一些数据之中,找到一个特殊的数据的实现方法。查找算法与遍历有极高的相似性,唯一的不同就是查找算法可能并不一定会将每一个数据都进行访…...
JavaScript 中的 for...in 和 for...of 循环详解
在 JavaScript 中,for...in 和 for...of 是两种常用的循环结构,但它们有着不同的用途和行为。很多初学者容易混淆这两者,本文将详细解析它们的区别、适用场景以及注意事项。 目录 for…in 循环 基本用法遍历对象属性注意事项 for…of 循环 …...
【汇总】影视仓接口地址,影视仓最新配置接口【2025.5】
📦 TVBOX接口分类与制作加载指南 结合参考资料,整理TVBOX接口的核心分类、制作方法及加载技巧,助你快速上手! 🌐 一、接口分类 🌍 网络接口(远程URL) 特点:动态加载在线J…...
vue引用cesium,解决“Not allowed to load local resource”报错
vue引用cesium,解决“Not allowed to load local resource”报错TOC 工具 vscode node :v22.14.0npm :10.9.2vue:vue/cli 5.0.8 一、创建一个 Vue 3 项目 1.创建名为cesium_test的项目: vue create cesium_test2.…...
阿里云服务器跑模型教程
首先打开阿里云官网点击免费试用 选择250工时/月的免费仨月新人试用套餐 点击右上角主账号 选择人工智能平台PAI 然后选择交互式建模(DSW) 选择新建实例 起个名字 然后点击确定 点击打开 进入到命令行工具 下载MINIConda和对应的pytorch还有相关依赖库文件即可 然后上传…...
JavaScript入门【2】语法基础
1.JavaScript的引⼊⽅式(使用): 1.方式1:行内引用: 此种方式是将<font style"color:rgb(38,38,38);">JavaScript代码作为HTML标签的属性值使⽤,示例如下:</font><html lang"en"> <head><meta charset"UTF-8"><…...
调用DeepSeek系列模型问答时,输出只有</think>标签,而没有<think>标签
问题:调用DeepSeek系列模型问答时,输出结果缺少只有标签,而没有标签? DeepSeek官方有关说明 这里设置成这样是为了保证让模型的生成是以"<think>\n"开头的,然后开始思考过程,避免模型没…...
python:gimp 与 blender 两个软件如何协作?
GIMP(GNU Image Manipulation Program)和 Blender 是两个不同领域的开源工具,但它们在数字创作流程中常协同使用,以下是它们的主要联系和互补性: 1. 功能互补:2D 与 3D 的结合 GIMP 是专业的 2D 图像处理工…...
MMDetection环境安装配置
MMDetection 支持在 Linux,Windows 和 macOS 上运行。它需要 Python 3.7 以上,CUDA 9.2 以上和 PyTorch 1.8 及其以上。 MMDetection 至今也一直更新很多个版本了,但是对于最新的pytorch版本仍然不支持,我安装的时候仍然多次遇到m…...
【springboot+vue3的前后端分离项目实现支付宝的沙箱支付】
【springbootvue3的前后端分离项目实现支付宝的沙箱支付】 以下是基于SpringBoot Vue前后端分离项目实现支付宝沙箱支付的完整解决方案,包含关键代码和调试技巧 一、项目架构设计 二、后端实现(SpringBoot) 1. 添加依赖 <!-- pom.xml…...