NoSQL——Redis配置与优化

news2025/7/27 13:33:22

目录

关系型&非关系型数据库

一、核心原理对比‌

‌二、核心特性对比‌

‌三、关键区别剖析‌

‌四、典型产品示例‌

‌总结‌

Redis

Redis核心原理

核心特性

技术意义

配置文件解析

1. 基础配置

2. 持久化配置

3. 内存管理

4. 高可用配置

5. 性能调优

6. 安全配置

配置最佳实践

 命令行工具

‌一、Redis-CLI(命令行客户端)‌

‌1. 基础操作‌

‌2. 批量操作模式‌

‌3. 监控与调试‌

‌二、Redis-Benchmark(性能测试工具)‌

‌1. 基础压测‌

‌2. 高级参数‌

‌三、Redis-Check工具集‌

‌1. RDB文件检查‌

‌2. AOF文件修复‌

‌四、Redis-Sentinel(高可用管理)‌

‌五、Redis-Cluster(集群管理)‌

‌六、特殊工具‌

‌1. 数据迁移‌

‌2. Lua脚本调试‌

‌工具选择建议‌

常用命令

‌一、Redis-CLI(命令行客户端)‌

‌1. 基础操作‌

‌2. 批量操作模式‌

‌3. 监控与调试‌

‌二、Redis-Benchmark(性能测试工具)‌

‌1. 基础压测‌

‌2. 高级参数‌

‌三、Redis-Check工具集‌

‌1. RDB文件检查‌

‌2. AOF文件修复‌

‌四、Redis-Sentinel(高可用管理)‌

‌五、Redis-Cluster(集群管理)‌

‌六、特殊工具‌

‌1. 数据迁移‌

‌2. Lua脚本调试‌

‌工具选择建议‌

‌一、Key(键)操作命令‌

‌二、String(字符串)命令‌

‌三、Hash(哈希表)命令‌

‌四、List(列表)命令‌

‌五、Set(集合)命令‌

‌六、Sorted Set(有序集合)命令‌

‌七、管理命令‌

‌命令使用建议‌


关系型&非关系型数据库

一、核心原理对比

  1. 关系型数据库

    • 数据模型‌:基于二维表结构(行/列),通过主键(Primary Key)建立唯一标识,外键(Foreign Key)维护表间关联关系。
    • 事务机制‌:严格遵循 ‌ACID 原则‌(原子性、一致性、隔离性、持久性),保障数据操作的可靠性。
    • 存储引擎‌:数据存储在磁盘的预定义结构中,读写需通过 SQL 解析层,依赖索引优化查询。
  2. 非关系型数据库

    • 数据模型‌:支持灵活结构,如键值对(Redis)、文档(MongoDB)、列族(HBase)、图(Neo4j)等,无固定 Schema。
    • 分布式架构‌:采用 ‌BASE 理论‌(基本可用、柔性状态、最终一致性),优先保证高可用和分区容错性。
    • 存储机制‌:部分数据库(如 Redis)支持内存存储,显著提升读写性能;数据分片(Sharding)实现水平扩展。

二、核心特性对比

特性关系型数据库非关系型数据库
数据结构固定表结构(Schema 约束)动态模式(Schema-less)
扩展方式垂直扩展(升级硬件)水平扩展(分布式集群)
事务支持完整 ACID 事务部分支持,最终一致性为主
查询语言标准 SQL(支持复杂 JOIN)专用 API/查询语法(如 MongoDB Aggregation)
典型应用场景金融交易、ERP 系统(强一致性需求)社交网络、物联网(高并发、低延迟)

三、关键区别剖析

  1. 设计哲学差异

    • 关系型‌:以数据一致性为核心,牺牲部分扩展性换取可靠事务。
    • 非关系型‌:以高可用性与灵活性优先,适应大数据与实时处理需求。
  2. 性能与扩展性

    • 关系型数据库在海量数据写入时易遇 I/O 瓶颈,而非关系型通过分布式架构轻松应对 PB 级数据。
    • 非关系型数据库读写性能通常优于关系型(尤其在内存数据库场景)。
  3. 适用场景

    数据库类型优势场景劣势场景
    关系型复杂关联查询、强事务系统(如银行转账)高并发写入、非结构化数据
    非关系型实时推荐、日志处理、缓存层多表关联分析、强一致性事务

四、典型产品示例

  • 关系型‌:MySQL(开源)、Oracle(企业级)、PostgreSQL(高级特性支持)。
  • 非关系型‌:
    • 键值型‌:Redis(内存缓存)
    • 文档型‌:MongoDB(JSON 存储)
    • 列存储‌:Cassandra(大规模分布式)

总结

关系型数据库通过结构化数据与事务保障满足精准业务需求,而非关系型数据库以灵活性和扩展性支撑互联网级应用。选择依据需综合考量‌数据一致性要求‌、‌并发规模‌及‌数据结构复杂度‌。

Redis

Redis核心原理

  1. 内存数据结构存储
    Redis基于键值对存储,所有数据常驻内存,通过异步持久化机制(RDB快照/AOF日志)保障数据安全。单线程事件循环模型(6.0后支持多线程I/O)避免了锁竞争,利用epoll实现高并发。

  2. 数据结构引擎
    支持5种基础数据结构:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Sorted Set(有序集合),每种结构针对特定场景优化,如跳表实现有序集合的O(logN)复杂度操作。

核心特性

  1. 高性能
    单节点可达10万+ QPS,依赖:

    • 内存访问纳秒级延迟

    • IO多路复用与非阻塞调用

    • 协议优化(RESP二进制安全协议)

  2. 持久化机制

    • RDB:定时全量快照,适合灾难恢复

    • AOF:记录写指令,支持秒级同步

    • 混合持久化(Redis 4.0+)

  3. 高可用架构

    • 哨兵模式(Sentinel)实现自动故障转移

    • 集群模式(Cluster)支持数据分片与线性扩展

技术意义

  1. 缓存场景革命
    解决传统数据库磁盘IO瓶颈,将热点数据访问速度提升1000倍以上,支持电商秒杀、社交Feed流等高并发场景。

  2. 新型数据结构应用
    如GEO模块实现地理位置计算,HyperLogLog做基数统计,BitMap处理签到等二值状态场景。

  3. 生态融合
    作为消息队列(Pub/Sub)、分布式锁(RedLock算法)的轻量级解决方案,与MySQL等组成多级存储体系。

配置文件解析

1. 基础配置
# 守护进程模式(yes/no)
daemonize yes  
# 绑定IP地址(默认127.0.0.1仅本地访问)
bind 0.0.0.0  
# 监听端口
port 6379  
# 数据库数量(默认16个)
databases 16  
2. 持久化配置
# RDB快照策略(格式:seconds changes)
save 900 1      # 900秒内1次修改触发
save 300 10     # 300秒内10次修改触发
dbfilename dump.rdb  # RDB文件名

# AOF配置
appendonly yes  
appendfsync everysec  # 同步策略(always/everysec/no)
auto-aof-rewrite-percentage 100  # AOF重写触发条件
3. 内存管理
maxmemory 4gb  # 最大内存限制
maxmemory-policy volatile-lru  # 淘汰策略(LRU/LFU等)
4. 高可用配置
# 主从复制
replicaof <masterip> <masterport>  
masterauth <password>  # 主节点密码

# 集群模式
cluster-enabled yes  
cluster-config-file nodes.conf
5. 性能调优
# 线程模型(6.0+)
io-threads 4  
# TCP连接队列
tcp-backlog 511  
# 客户端超时(秒)
timeout 300  
6. 安全配置
requirepass foobared  # 访问密码
rename-command FLUSHDB ""  # 禁用危险命令

配置最佳实践

  1. 生产环境必须设置requirepassbind

  2. AOF+RDB混合持久化推荐配置:

    aof-use-rdb-preamble yes
  3. 内存淘汰策略根据业务选择:

    • 缓存场景:allkeys-lru

    • 持久化场景:volatile-lru

 命令行工具

一、Redis-CLI(命令行客户端)

1. 基础操作
# 连接Redis服务器(带密码) redis-cli -h 127.0.0.1 -p 6379 -a password 
# 执行单条命令 redis-cli set foo bar redis-cli get foo 
2. 批量操作模式
# 管道模式(高效批量执行) echo -e "set k1 v1\nget k1" | redis-cli --pipe 

# 交互式批量操作 redis-cli --eval script.lua key1 key2 , arg1 arg2 
3. 监控与调试
# 实时监控命令执行 redis-cli monitor 
# 性能测试(10万次SET操作) redis-benchmark -t set -n 100000 

二、Redis-Benchmark(性能测试工具)

1. 基础压测
# 测试GET/SET命令性能 redis-benchmark -t get,set -q -n 100000 
2. 高级参数
# 模拟100并发连接,测试管道性能 redis-benchmark -t set -P 16 -c 100 -n 1000000 

三、Redis-Check工具集

1. RDB文件检查
# 分析RDB文件内存占用 redis-rdb-tools --command memory dump.rdb 
2. AOF文件修复
# 修复损坏的AOF文件 redis-check-aof --fix appendonly.aof 

四、Redis-Sentinel(高可用管理)

# 启动哨兵节点 redis-sentinel sentinel.conf 
# 查看主从状态 redis-cli -p 26379 sentinel masters 

五、Redis-Cluster(集群管理)

# 创建集群节点 redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 
# 集群节点检查 redis-cli --cluster check 127.0.0.1:7001 

六、特殊工具

1. 数据迁移
# 将数据迁移到新Redis实例 redis-cli --rdb dump.rdb 

# 导出RDB scp dump.rdb new_server:/path 

redis-server --dbfilename dump.rdb # 新实例加载 
2. Lua脚本调试
# 调试Lua脚本 redis-cli --ldb --eval script.lua 

工具选择建议

  1. 日常运维‌:优先使用redis-cli+monitor
  2. 性能优化‌:redis-benchmark+redis-rdb-tools
  3. 故障恢复‌:redis-check-aof+redis-cli --cluster fix

常用命令

一、Redis-CLI(命令行客户端)

1. 基础操作
# 连接Redis服务器(带密码) redis-cli -h 127.0.0.1 -p 6379 -a password 

# 执行单条命令 
redis-cli set foo bar 
redis-cli get foo 
2. 批量操作模式
# 管道模式(高效批量执行) echo -e "set k1 v1\nget k1" | redis-cli --pipe 

# 交互式批量操作 redis-cli --eval script.lua key1 key2 , arg1 arg2 
3. 监控与调试
# 实时监控命令执行 redis-cli monitor 

# 性能测试(10万次SET操作) redis-benchmark -t set -n 100000 

二、Redis-Benchmark(性能测试工具)

1. 基础压测
# 测试GET/SET命令性能 redis-benchmark -t get,set -q -n 100000 
2. 高级参数
# 模拟100并发连接,测试管道性能 redis-benchmark -t set -P 16 -c 100 -n 1000000 

三、Redis-Check工具集

1. RDB文件检查
# 分析RDB文件内存占用 redis-rdb-tools --command memory dump.rdb 
2. AOF文件修复
# 修复损坏的AOF文件 redis-check-aof --fix appendonly.aof 

四、Redis-Sentinel(高可用管理)

# 启动哨兵节点 
redis-sentinel sentinel.conf # 查看主从状态 redis-cli -p 26379 sentinel masters 

五、Redis-Cluster(集群管理)

# 创建集群节点 
redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 

# 集群节点检查 
redis-cli --cluster check 127.0.0.1:7001 

六、特殊工具

1. 数据迁移
# 将数据迁移到新Redis实例 
redis-cli --rdb dump.rdb # 导出RDB 
scp dump.rdb new_server:/path 
redis-server --dbfilename dump.rdb # 新实例加载 
2. Lua脚本调试
# 调试Lua脚本 redis-cli --ldb --eval script.lua 

工具选择建议

  1. 日常运维‌:优先使用redis-cli+monitor
  2. 性能优化‌:redis-benchmark+redis-rdb-tools
  3. 故障恢复‌:redis-check-aof+redis-cli --cluster fix

每个工具均支持--help查看详细参数。生产环境操作前建议先备份数据。

请再为我对于redis的常用命令进行详细的讲解一下,并对于其各自的使用方法与作用进行详细的讲解

DeepSeek-R1 回答完成

搜索全网26篇资料

以下是Redis常用命令的详细分类解析,涵盖五大核心数据类型及管理命令:


一、Key(键)操作命令

  1. 基础操作
    SET key value # 设置键值对(覆盖已存在值):ml-citation{ref="1,5" data="citationList"} 
    GET key # 获取键对应的字符串值:ml-citation{ref="1,6" data="citationList"} 
    DEL key # 删除指定键(支持批量删除):ml-citation{ref="4,5" data="citationList"} 
    EXISTS key # 检查键是否存在(1存在/0不存在):ml-citation{ref="5,10" data="citationList"} 
  2. 生命周期控制
    EXPIRE key 60 # 设置键60秒后过期:ml-citation{ref="4,12" data="citationList"} 
    TTL key # 查看键剩余生存时间(秒):ml-citation{ref="5,10" data="citationList"} 
    PERSIST key # 移除键的过期时间:ml-citation{ref="4,12" data="citationList"} 

二、String(字符串)命令

  1. 数值操作
    INCR counter # 值自增1(原子计数器):ml-citation{ref="1,5" data="citationList"} 
    INCRBY num 5 # 值增加指定整数:ml-citation{ref="5,9" data="citationList"} 
    DECRBY num 3 # 值减少指定整数:ml-citation{ref="9,14" data="citationList"} 
  2. 位操作
    SETBIT login:20240605 1 1 # 记录用户ID为1的登录状态:ml-citation{ref="7,14" data="citationList"} 
    BITCOUNT login:20240605 # 统计当天登录用户数:ml-citation{ref="7" data="citationList"} 

三、Hash(哈希表)命令

HSET user:1001 name "Alice" age 28 # 设置对象字段:ml-citation{ref="8,9" data="citationList"} 
HGET user:1001 name # 获取单个字段值:ml-citation{ref="6,9" data="citationList"} 
HGETALL user:1001 # 获取所有字段和值:ml-citation{ref="9,11" data="citationList"} 
HINCRBY user:1001 age 1 # 字段值原子递增:ml-citation{ref="14" data="citationList"} 

四、List(列表)命令

LPUSH tasks "task1" # 左侧插入元素(模拟队列):ml-citation{ref="7,11" data="citationList"} 
RPOP tasks # 右侧弹出元素:ml-citation{ref="11" data="citationList"} 
LRANGE tasks 0 -1 # 获取全部元素:ml-citation{ref="9,11" data="citationList"} 
LTRIM tasks 0 99 # 保留最近100条数据:ml-citation{ref="11" data="citationList"} 

五、Set(集合)命令

SADD tags "redis" "db" # 添加元素(自动去重):ml-citation{ref="8,9" data="citationList"} 
SINTER tags1 tags2 # 计算集合交集:ml-citation{ref="9" data="citationList"} 
SMEMBERS tags # 获取所有元素:ml-citation{ref="9,10" data="citationList"} 
SISMEMBER tags "redis" # 检查元素是否存在:ml-citation{ref="9" data="citationList"} 

六、Sorted Set(有序集合)命令

ZADD rank 95 "Alice" # 添加带分数的成员:ml-citation{ref="9,11" data="citationList"} 
ZREVRANGE rank 0 2 # 获取TOP3(按分数降序):ml-citation{ref="11" data="citationList"} 
ZSCORE rank "Alice" # 查询成员分数:ml-citation{ref="11" data="citationList"} 
ZCOUNT rank 80 100 # 统计分数区间成员数:ml-citation{ref="11" data="citationList"} 

七、管理命令

  1. 服务控制
    INFO memory # 查看内存使用详情:ml-citation{ref="5,12" data="citationList"} 
    CLIENT LIST # 列出所有客户端连接:ml-citation{ref="12" data="citationList"} 
    FLUSHDB # 清空当前数据库:ml-citation{ref="10,12" data="citationList"} 
  2. 事务与脚本
    MULTI # 开启事务:ml-citation{ref="14" data="citationList"} 
    EXEC # 执行事务:ml-citation{ref="14" data="citationList"} 
    EVAL "return ARGV[1]" 0 "hello" # 执行Lua脚本:ml-citation{ref="14" data="citationList"} 

命令使用建议

  1. 生产环境慎用‌:KEYS *(改用SCAN迭代)和FLUSHALL
  2. 性能优化‌:批量操作使用MSET/HMSET替代多次SET/HSET
  3. 数据安全‌:敏感操作前先SAVE备份数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2406097.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CKA考试知识点分享(2)---ingress

CKA 版本&#xff1a;1.32 第二题是涉及ingress相关。本文不是题目&#xff0c;只是为了学习相关知识点做的实验。 1. 环境准备 需要准备一套K8S集群。 1.1 安装ingress-nginx 下载deploy文件&#xff1a; wget -O controller-v1.12.2.yaml https://raw.githubusercontent…

动态生成element-plus的scss变量;SCSS中实现动态颜色变体生成

文章目录 一、动态css变量1.生成内容2.动态生成css变量2.1新增_color-utils.scss&#xff08;不推荐&#xff09;2.2新增_color-utils.scss&#xff08;推荐&#xff09;2.3theme.scss引入使用 一、动态css变量 1.生成内容 在我们修改element-plus主题色时候&#xff0c;会自…

Linux 内核内存管理子系统全面解析与体系构建

一、前言: 为什么内存管理是核心知识 内存管理是 Linux 内核最核心也最复杂的子系统之一&#xff0c;其作用包括&#xff1a; 为软件提供独立的虚拟内存空间&#xff0c;实现安全隔离分配/回收物理内存资源&#xff0c;维持系统稳定支持不同类型的内存分配器&#xff0c;最优…

Tableau for mac 驱动

Tableau 驱动程序安装指南 对于希望在 Mac OS 上使用 Tableau 进行数据分析的用户来说&#xff0c;确保正确安装相应的驱动程序至关重要。Tableau 支持多种数据库连接方式&#xff0c;并提供官方文档指导如何设置这些连接。 安装适用于 Mac 的 JDBC 或 ODBC 驱动程序 为了使…

fast-reid部署

配置设置&#xff1a; 官方库链接&#xff1a; https://github.com/JDAI-CV/fast-reid# git clone https://github.com/JDAI-CV/fast-reid.git 安装依赖&#xff1a; pip install -r docs/requirements.txt 编译&#xff1a;切换到fastreid/evaluation/rank_cylib目录下&a…

大陆4D毫米波雷达ARS548调试

本文介绍了大陆ARS548毫米波雷达的调试与测试流程&#xff0c;主要包括以下内容&#xff1a; 设备参数&#xff1a;最大检测距离301m&#xff08;可调93-1514m&#xff09;&#xff0c;支持gPTP时间同步。 接线调试&#xff1a; Windows需使用USB-RJ45转换器 Linux可直接连接网…

大语言模型解析

1. Input Embedding embedding&#xff1a;将自然语言翻译成index 每个index对应一个embedding&#xff0c;embedding需要训练&#xff0c;embedding是一个数组

Java在word中指定位置插入图片。

Java使用&#xff08;Poi-tl&#xff09; 在word&#xff08;docx&#xff09;中指定位置插入图片 Poi-tl 简介Maven 依赖配置Poi-tl 实现原理与步骤1. 模板标签规范2.完整实现代码3.效果展示 Poi-tl 简介 Poi-tl 是基于 Apache POI 的 Java 开源文档处理库&#xff0c;专注于…

可视化图解算法48:有效括号序列

牛客网 面试笔试 TOP101 | LeetCode 20. 有效的括号 1. 题目 描述 给出一个仅包含字符(,),{,},[和],的字符串&#xff0c;判断给出的字符串是否是合法的括号序列 括号必须以正确的顺序关闭&#xff0c;"()"和"()[]{}"都是合法的括号序列&…

Continue 开源 AI 编程助手框架深度分析

Continue 开源 AI 编程助手框架深度分析 一、项目简介 Continue 是一个模块化、可配置、跨平台的开源 AI 编程助手框架&#xff0c;目标是让开发者能在本地或云端环境中&#xff0c;快速集成和使用自定义的 LLM 编程辅助工具。它通过支持 VS Code 与 JetBrains 等主流 IDE 插件…

MySQL技术内幕1:内容介绍+MySQL编译使用介绍

文章目录 1.整体内容介绍2.下载编译流程2.1 安装编译工具和依赖库2.2 下载编译 3.配置MySQL3.1 数据库初始化3.2 编辑配置文件3.3 启动停止MySQL3.4 登录并修改密码 1.整体内容介绍 MySQL技术系列文章将从MySQL下载编译&#xff0c;使用到MySQL各组件使用原理源码分析&#xf…

网络安全问题及对策研究

摘 要 网络安全问题一直是近年来社会乃至全世界十分关注的重要性问题&#xff0c;网络关乎着我们的生活&#xff0c;政治&#xff0c;经济等多个方面&#xff0c;致力解决网络安全问题以及给出行之有效的安全策略是网络安全领域的一大目标。 本论文简述了课题的开发背景&…

【计算机网络】NAT、代理服务器、内网穿透、内网打洞、局域网中交换机

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;计算机网络 &#x1f339;往期回顾&#x1f339;&#xff1a;【计算机网络】数据链路层——ARP协议 &#x1f516;流水不争&#xff0c;争的是滔滔不息 一、网络地址转…

在 Vue 的template中使用 Pug 的完整教程

在 Vue 的template中使用 Pug 的完整教程 引言 什么是 Pug&#xff1f; Pug&#xff08;原名 Jade&#xff09;是一种高效的网页模板引擎&#xff0c;通过缩进式语法和简洁的写法减少 HTML 的冗长代码。Pug 省略了尖括号和闭合标签&#xff0c;使用缩进定义结构&#xff0c;…

【立体匹配】:双目立体匹配SGBM:(1)运行

注&#xff1a;这是一个专题&#xff0c;我会一步步介绍SGBM的实现&#xff0c;按照我的使用和优化过程逐步改善算法&#xff0c;附带实现方法 系列文章【立体匹配】&#xff1a;双目立体匹配SGBM&#xff1a;&#xff08;1&#xff09;运行 【立体匹配】&#xff1a;双目立体匹…

< 自用文 OS有关 新的JD云主机> 国内 京东云主机 2C4G 60G 5Mb 498/36月 Ubuntu22

攒了这么久&#xff0c;废话一些&#xff1a; 前几周很多事儿&#xff0c;打算回北京&#xff0c;开个清真的德克萨斯烤肉店&#xff0c;写了一篇 &#xff1a; &#xff1c; 自用文 Texas style Smoker &#xff1e; 美式德克萨斯烟熏炉 从设计到实现 &#xff08;第一部分&…

《架构即未来》笔记

思维导图 第一部分&#xff1a;可扩展性组织的人员配置 第二部分&#xff1a;构建可扩展的过程 第三部分&#xff1a;可扩展的架构方案 第四部分&#xff1a;其他的问题和挑战 资料 问软件工程研究所&#xff1a; https://www.sei.cmu.edu/ AKF公司博客: http://www.akfpart…

ubuntu2404 gpu 没接显示器,如何保证远程显示的分辨率

1. 使用 xserver-xorg-video-dummy 创建虚拟显示器 如果系统在无物理显示器连接时无法识别显示输出&#xff0c;可以使用 xserver-xorg-video-dummy 驱动程序创建虚拟显示器。以下是设置步骤&#xff1a; 安装虚拟显示器驱动程序&#xff1a; sudo apt install xserver-xorg-v…

【基于阿里云搭建数据仓库(离线)】使用UDTF时出现报错“FlatEventUDTF cannot be resolved”

目录 问题&#xff1a; 可能的原因有&#xff1a; 解决方法&#xff1a; 问题&#xff1a; 已经将包含第三方依赖的jar包上传到dataworks&#xff0c;并且成功注册函数&#xff0c;但是还是报错&#xff1a;“FlatEventUDTF cannot be resolved”&#xff0c;如下&#xff1a…

Pycharm的终端无法使用Anaconda命令行问题详细解决教程

很多初学者在Windows系统上安装了Anaconda后&#xff0c;在PyCharm终端中运行Conda命令时&#xff0c;会遇到以下错误&#xff1a; conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保…