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

网站建设四段合一/短视频seo

网站建设四段合一,短视频seo,上不了建设银行网站,大型网站的服务器架设与小型网站有什么不同首先,我们明白一个概念, 硬盘>持久 内存>不持久 而Redis是一个内存数据库,不持久,相比于Mysql这样的关系型数据库,最明显的特点是快/效率高 为了保证速度快,数据要保存再内存中,为了持久,存储在硬盘上 所以redis决定: 插入>内存+硬盘(硬盘是为了在re…

首先,我们明白一个概念,

硬盘=>持久

内存=>不持久

而Redis是一个内存数据库,不持久,相比于Mysql这样的关系型数据库,最明显的特点是快/效率高

为了保证速度快,数据要保存再内存中,为了持久,存储在硬盘上

所以redis决定:

插入=>内存+硬盘(硬盘是为了在redis重启时,恢复内存中的数据)

代价:消耗了更多空间,但是硬盘成本低,损耗小


持久化策略:

  • RDB=>定期备份

比方说每个月我把我电脑硬盘上的学习资料,整体的备份到备份盘中

  • AOF=>实时备份

比方说只要我下载了一个新的学习资料,立即把这个学习资料在备份盘中拷贝一份

 

1. RDB(Redis DataBase) 

RDB持久化是把当前进程数据⽣成快照(RDB文件),保存到硬盘的过程

后续Redis一旦重启(内存数据没了),就可以根据刚才的"快照"把数据恢复

快照可以在重启后用以恢复数据

1.1 触发机制 

1.1.1 手动触发

通过redis客户端,执行特定的命令,来触发快照生成 

  • save

执行save命令时,快照生成,此时阻塞Redis的其它命令,直至RDB过程完成为止

对于内存⽐较⼤的实例造成⻓时间阻塞,类似于key *的结果,不建议使用

  • bgsave 

不会影响Redis服务器的其它请求和命令

那是怎么做到呢?是偷摸搞了个多线程嘛?

并不是

此时redis使用"多进程"方式来完成并发编程

由于这里的数据比较少,执行bgsave瞬间就完成了

如果数据太多,执行bgsave就会消耗一定的时间,立即查看不一样就生成完毕.

通过上述的操作,就可以看到,redis服务器在重启的时候,加载了rdb文件的内容,恢复了内存之前的状态了.

 

1.1.2 自动触发 

①在配置文件中使⽤save配置:

如"save m n"表⽰m秒内数据集发⽣了n次修改,⾃动RDB持久化

配置文件修改之后,一定要重新启动服务器,才能生效

此处的数值可以修改,但是有一个基本的原则:

生成一次RDB快照,这个成本是比较高的,不能让这个操作执行的太频繁

举个例子:

save 60 10000(两次生成rdb之间的间隔,最少是60s)

12:00:00 生成了rdb(硬盘上的快照数据和内存中一致)

12:00:01 开始,redis收到了大量的key的变化请求

12:01:00 生成下一个快照文件

如果在这之间,redis服务器挂了,此时就会导致12:00:00之后的这些数据都丢了

②从节点进⾏全量复制操作时,主节点⾃动进⾏RDB持久化,随后将RDB⽂件内容发送给从结点。 

③执⾏shutdown命令关闭Redis时,执⾏RDB持久化(service redis-server restart) -正常关闭

 

刚才bgsave并没有执行,但是这个key2重启之后仍然存在

如果是通过正常流程重启redis服务器,此时redis服务器会在退出的时候,自动触发rdb操作

但如果是异常重启(kill -9或者其它),此时redis服务器就来不及生成rdb,内存中尚未保存在快照中的数据,就会随重启而丢失

 

 

1.2 流程说明

  1. 执⾏bgsave命令,Redis⽗进程判断当前进是否存在其他正在执⾏的⼦进程,如RDB/AOF⼦进程,如果存在bgsave命令直接返回。
  2. ⽗进程执⾏fork创建⼦进程,fork过程中⽗进程会阻塞。
  3. ⽗进程fork完成后,可以继续响应其他命令。
  4. ⼦进程创建RDB⽂件,根据⽗进程内存⽣成临时快照⽂件,完成后对原有⽂件进⾏替换。
  5. 进程发送信号给⽗进程表⽰完成,⽗进程更新统计信息。 

bgsave操作流程是创建子进程,子进程完成持久化操作(持久化速度太快了[数据少],难以观察到子进程)

持久化会把数据写入新的文件中,然后使用新的文件替换旧的文件 (容易观察到)

可以使用stat命令,查看文件的inode编号:

 

1.3 RDB文件的处理

  • 保存:

RDB⽂件保存在dir配置指定的⽬录(默认/var/lib/redis/)下

⽂件名通过dbfilename 配置(默认dump.rdb)指定

  • dump.rdb:

RDB机制生成的镜像文件,redis服务器默认是开启了RDB的

把内存中的数据,以压缩的形式(需要消耗一定的CPU资源,但能节省存储空间),保存在这个二进制文件中:

redis提供了RDB文件的检查工具:


  • RDB持久化操作,是可以触发多次的:

当执行生成RDB镜像时,此时就会把要生成的快照数据,先保存到一个临时文件中,当这个快照生成后,再删除之前的RDB文件,把新生成的临时的RDB文件名改成刚才的dump.rdb

自始至终,RDB文件始终只有一个


  • 如果把RDB文件故意搞坏了,会怎么样?

手动的把rdb文件内容改坏,然后通过kill 进程的方式,重启服务器

如果通过service redis-server restart重启,就会在redis服务器退出的时候,重新生成rdb快照

如果改坏的地方是文件末尾,没有影响,如果是中间位置,会发现redis服务器可能无法启动

当redis服务器挂了之后,可以看看redis日志,了解一下发生了什么

也可能redis服务器能启动,但是得到的数据可能有问题:

通过检查工具,查看rdb文件格式是否符合要求,运行的时候,加入rdb文件作为命令行参数

此处就是以检查工具的方式来运行,不会真的启动redis服务器

 

1.4 优缺点

  • RDB是⼀个紧凑压缩的⼆进制⽂件,代表Redis在某个时间点上的数据快照。⾮常适⽤于备份,全 量复制等场景。
  • Redis加载RDB恢复数据远远快于AOF的⽅式 (RDB这里使用二进制的方式来组织数据,直接把数据读取到内存中,按照字节的格式取出来放到结构体/对象中即可,而AOF是使用文本的方式来组织数据的,需要进行一系列的字符串切分操作)
  • RDB⽅式数据没办法做到实时持久化/秒级持久化,因为bgsave每次运⾏都要执⾏fork创建⼦进 程,属于重量级操作,频繁执⾏成本过⾼。
  • RDB⽂件使⽤特定⼆进制格式保存,Redis版本演进过程中有多个RDB版本,兼容性可能有⻛ 险。
  • 最大的问题,不能实时的持久化保存数据,在两次生成快照之间,实时的数据可能会随着重启而丢失

2. AOF(Append Only File)  

以独⽴⽇志的⽅式记录每次写命令,重启时再重新执⾏AOF ⽂件中的命令达到恢复数据的⽬的

AOF的主要作⽤是解决了数据持久化的实时性,⽬前已经是Redis 持久化的主流⽅式

开启AOF时,RDB就不生效了

redis启动的时候,不再读取RDB文件的内容了,而是读取这个AOF文件中的内容,用来恢复数据

 

2.1 使用AOF 

AOF默认是关闭状态,通过修改配置文件开启

AOF功能所在的位置,也是/var/lib/redis

通过一些特殊符号作为分隔符

2.2 AOF工作流程

 

 

  1. 所有的写⼊命令会追加到aof_buf(缓冲区)中。
  2. AOF缓冲区根据对应的策略向硬盘做同步操作。
  3. 随着AOF⽂件越来越⼤,需要定期对AOF⽂件进⾏重写,达到压缩的⽬的。
  4. 当Redis服务器启动时,可以加载AOF⽂件进⾏数据恢复

 

Redis虽然是一个单线程的服务器,但是速度很快

为什么快?只操作内存

  • 引入AOF之后,又要写内存,又要写硬盘,那还和之前一样快嘛?

实际上,是没有影响的

  • AOF机制并非直接让工作线程把数据写入硬盘,而是先写入一个内存中的缓冲区,积累一定后,再统一写入硬盘,大大降低了写硬盘的次数
  • 硬盘上读写数据,顺序读写的速度是比较快的(比内存慢),随机访问则比较慢,AOF每次把新的操作写入原有文件的末尾,是顺序写入

  • 如果把数据写入缓冲区,本质还是在内存中呀,万一这个时候,进程突然挂了,是不是缓冲区的数据就丢了?

是的!

要根据实际情况来取舍缓冲区的刷新频率

刷新频率越高,性能影响就越大,数据可靠性越高

刷新频率越低,性能影响就越小,数据可靠性越低

2.3 文件同步

可配置值说明
always命令写⼊aof_buf后调⽤fsync同步,完成后返回
everysec命令写⼊aof_buf后只执⾏write操作,不进⾏ fsync。每秒由同步线程进⾏fsync
no命令写⼊aof_buf后只执⾏write操作,由OS控制 fsync 频率

 

2.4 重写机制

2.4.1 引入 

AOF文件持续增长,体积会越来越大,会影响到,redis下次启动的启动时间

redis启动时要读取AOF文件的内容

AOF文件虽然记录了中间的过程,但是Redis在重启时,只关注最终结果,AOF文件中的一些内容是冗余的

什么意思呢?

比如说: 

因此,redis就存在一个机制(重写机制),能够针对AOF文件进行整理操作,剔除其中的冗余操作,并且合并一些操作,给AOF"瘦身" 

2.4.2 触发机制

  • 手动触发

调⽤bgrewriteaof命令

  • 自动触发 

根据auto-aof-rewrite-min-size和auto-aof-rewrite-percentage参数确定⾃动触发时机

  • auto-aof-rewrite-min-size:表⽰触发重写时AOF的最⼩⽂件⼤⼩,默认为64MB
  • auto-aof-rewrite-percentage:代表当前AOF占⽤⼤⼩相⽐较上次重写时增加的⽐例

2.4.3 重写流程 

1.执⾏AOF重写请求。

  • 如果当前进程正在执⾏AOF重写,请求不执⾏。
  • 如果当前进程正在执⾏bgsave操作,重写命令延迟到bgsave完成之后再执⾏。

2. ⽗进程执⾏fork创建⼦进程(父进程负责接收请求,子进程负责重写)

3. 重写

  • 主进程fork之后,继续响应其他命令。所有修改操作写⼊AOF缓冲区并根据appendfsync策略同步到硬盘,保证旧AOF⽂件机制正确。
  • ⼦进程只有fork之前的所有内存信息,⽗进程中需要将fork之后这段时间的修改操作写⼊ AOF重写缓冲区中。

4. ⼦进程根据内存快照,将命令合并到新的AOF⽂件中。

注意:

  • 重写的时候,不关心AOF文件中原来有什么,只关心内存最终的数据状态
  • 子进程只需要把内存中当前的数据,获取出来,以AOF的格式写入到一个新的AOF文件中

5. ⼦进程完成重写

  • 新⽂件写⼊后,⼦进程发送信号给⽗进程。
  • ⽗进程把AOF重写缓冲区内临时保存的命令追加到新AOF⽂件中。
  • ⽤新AOF⽂件替换⽼AOF⽂件

注意:

  • 在创建子进程的一瞬间,子进程就继承了当前父进程的内存状态
  • 因此,子进程里的内存数据是父进程fork之前的状态,fork之后新来的请求,对内存造成的修改,是子进程不知道的.
  • 此时,父进程这里又准备了一个aof_rewrite_buf缓冲区,专门放fork之后收到的数据
  • 子进程这边,把AOF数据写完之后,会通过信号通知一下i父进程,父进程再把aof_rewrite_buf缓冲区中的内容写入到新的AOF文件里
  • 后面就可以用新的AOF文件代替旧的AOF文件了

问:

  • 如果在执行bgrewriteaof的时候,当前redis已经正在进行aof重写了,会怎么样?

此时,不会再次执行aof重写,直接返回

  • 如果在执行bgrewriteaof的时候,发现当前redis在生成rdb文件的快照,会怎么样?

此时,aof重写操作就会等待,等待rdb快照生成完毕之后,再执行aof重写操作


rdb对于fork之后的新数据,就直接不管了,aof则对于这些数据,采取aof_rewrite_buf缓冲区的方式来处理

父进程fork完之后,就已经让子进程写新的aof文件了,并且随着时间的推移,子进程很快就写完了新的文件,新的代替旧的

  • 那父进程此时还在继续写这个即将消亡的旧的aof文件是否还有意义?

不能不写!!

假设在重写过程中,服务器挂了,子进程内存的数据就会丢失,新的内容还不完整,所以如果不写旧的aof文件,重启就没法保证数据的完整性

2.5 启动时数据恢复

AOF是按照文本的方式来写文件的,但是这样的话后续加载的成本比较高

redis就引入了"混合持久化"方式,结合RDB和AOF的特点

按照AOF的方式,每一个请求/操作,都记录入文件

在触发AOF重写之后,就会把当前内存的状态按照RDB的二进制格式写入新的AOF文件中,后续再进行的操作,仍按照AOF文本的方式追加到文件后

yes表示开启了混合持久化


  • 当redis同时存在AOF文件和RDB快照的时候,以谁为主?

以AOF为主,RDB就直接忽略(AOF数据更全)

相关文章:

Redis-持久化

首先,我们明白一个概念, 硬盘>持久 内存>不持久 而Redis是一个内存数据库,不持久,相比于Mysql这样的关系型数据库,最明显的特点是快/效率高 为了保证速度快,数据要保存再内存中,为了持久,存储在硬盘上 所以redis决定: 插入>内存+硬盘(硬盘是为了在re…...

封装轮播图 (因为基于微博小程序,语法可能有些出入,如需使用需改标签)

这是在组件中使用&#xff0c;基于微博语法 <template><wbx-view class"" style"width: 100vw;height: 70vh;"><WBXswiper change"gaibian" :vertical"false" :current"current" indicatorActiveColor"…...

【Ubuntu】minicom安装、配置、使用以及退出

目录 1 安装 2 配置 3 使用 4 退出 minicom是一个串口通信的工具&#xff0c;以root权限登录系统&#xff0c;可用来与串口设备通信。 1 安装 sudo apt-get install minicom 2 配置 使用如下命令进入配置界面&#xff1a; sudo minicon -s 进入配置界面后&#xff0c;…...

MYSQL的监控

1. MySQL服务器都提供了哪几种类型的日志文件&#xff1f;说明每种日志的用途。 Error log&#xff1a;启动、关闭和异常有关的诊断信息 General query log:服务器从客户端收到的所有语句 Slow query log:需要很长时间执行的查询 Audit log:企业版基于策略的审计 Binary…...

CTF ciscn_2019_web_northern_china_day1_web2

ciscn_2019_web_northern_china_day1_web2 BEGIN 拿到题目&#xff0c;先看看 这里发现一个很像提示的东西&#xff0c;然后发现下面是一堆小电视商品&#xff0c;有lv等级和金钱&#xff0c;所以这题的入口可能就是再lv6和这个资金募集上 然后点击下next&#xff0c;看看页…...

linux中vim编辑器的应用实例

前言 Linux有大量的配置文件&#xff0c;其中编辑一些配置文件&#xff0c;最常用的工具就是 Vim &#xff0c;本文介绍一个实际应用的Vim编辑器开发文档的实例。 Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器&#xff0c;在Vi的基础上改进和增加了很多特性。…...

智慧城市交通管理中的云端多车调度与控制

城市交通管理中的云端多车调度与控制 智慧城市是 21世纪的城市基本发展方向&#xff0c;为了实现智慧城市建设的目标&#xff0c;人们需要用现代化的手段去管理和控制城市中的各种资源和设施。智能交通控制与管理是智慧城市中不可缺少的一部分&#xff0c;因为现代城市交通系统…...

分治(归并排序)

一、基本思路 我们以一个归并排序为例。 . - 力扣&#xff08;LeetCode&#xff09; 归并排序的思想&#xff1a;得到两个有序数组&#xff0c;把两个有序数组合并&#xff0c;传到下一层递归&#xff0c;一直得到两个有序数组&#xff0c;一直合并&#xff0c;最后就能得到有…...

小学生为什么要学英语

小学生需要学习英语的原因有很多&#xff0c;以下是其中的一些原因&#xff08;毕竟我也会累滴(*&#xffe3;▽&#xffe3;*)&#xff09;&#xff1a; 1. 全球化交流&#xff1a;英语是国际交流的通用语言&#xff0c;学习英语可以帮助小学生更好地融入全球化的社会环境&am…...

企业云存储如何收费?企业云存储收费标准

企业云存储如何收费&#xff1f;企业云存储的收费方式因不同的服务提供商和具体的服务选项而异&#xff0c;通常从用户数量、存储容量、功能、混合收费、按需定价、定制化、功能模块等多个方面进行考量。以下是对其多方面收费方式的详细介绍&#xff1a; 1.按用户数量收费 适用…...

一步步教你LangGraph Studio:可视化调试基于LangGraph构建的AI智能体

之前我们在第一时间介绍过使用LangChain的LangGraph开发复杂的RAG或者Agent应用&#xff0c;随着版本的迭代&#xff0c;LangGraph已经成为可以独立于LangChain核心&#xff0c;用于开发多步骤、面向复杂任务、支持循环的AI智能体的强大框架。 近期LangGraph推出了一个使得复杂…...

用SpringBoot打造先进的学科竞赛管理系统

1绪 论 1.1研究背景 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理&#xff0c;这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制&#xff0c;不仅提高了工作效率&#xff0c;而且大大的提高了其…...

Linux入门攻坚——34、nsswitch、pam、rsyslog和loganalyzer前端展示工具

nsswitch&#xff1a;network service switch 名称解析&#xff1a;name <---> id 认证服务&#xff1a;用户名、密码验证或token验证等 名称解析和认证服务都涉及查找位置&#xff0c;即保存在哪里。如linux认证&#xff0c;passwd、shadow&#xff0c;是在文件中&…...

如何在Excel中快速找出前 N 名,后 N 名

有如下销售额统计表&#xff1a; 找出销售额排前 10 名的产品及其销售额&#xff0c;和销售额排倒数 10 名以内的产品及其销售额&#xff0c;结果如下所示&#xff1a; 前 10 名&#xff1a; spl("E(?1).sort(ProductSales:-1).to(10)",A1:C78)后 10 名&#xff1…...

创意实现!在uni-app小程序商品详情页轮播中嵌入视频播放功能

背景介绍 通过uni-app框架实现商城小程序商品详情页的视频与图片轮播功能&#xff0c;以提升用户体验和增加商品吸引力。通过展示商品视频和图片&#xff0c;用户可以更全面地了解商品细节&#xff0c;从而提高购买决策的便利性和满意度。这种功能适用于各类商品&#xff0c;如…...

WAF,全称Web Application Firewall,好用WAF推荐

WAF&#xff0c;全称Web Application Firewall&#xff0c;即Web应用防火墙&#xff0c;是一种网络安全设备&#xff0c;旨在保护Web应用程序免受各种Web攻击&#xff0c;如SQL注入、跨站脚本&#xff08;XSS&#xff09;、跨站请求伪造&#xff08;CSRF&#xff09;等。 WAF通…...

docker中搭建nacos并将springboot项目的配置文件转移到nacos中

前言 网上搜索docker中搭建nacos发现文章不是很好理解&#xff0c;正好最近在搭建nacos练手。记录一下整个搭建过程。文章最后附上了一些过程中遇到的问题&#xff0c;大家可以按需要查看。 docker中搭建nacos并将springboot项目的配置文件转移到nacos中 前言1 docker中下拉na…...

概率论原理

智慧挺不喜欢我&#xff0c;他告诉我需要有耐心&#xff0c;答案在后面&#xff1b;而我总想马上得到答案&#xff1b;但它也会给我奖励&#xff0c;因为我总会自己去寻找答案 B站 大大的小番茄 普林斯顿微积分 PDF 一化儿 BILIBILI 泰勒展开式 知乎https://www.zhihu.com…...

MYSQL的安装和升级

MySQL的RPM安装通常分为不同的包&#xff0c;包括Server、Common、Client、Devel、Libs、Libs-compat、Test、Source&#xff0c;请写出上述每个包的功能。 Server&#xff1a;包含MySQL服务器的核心文件和服务。安装此包后可以运行MySQL数据库服务器。 Common&#xff1a;包…...

深入解析 RISC-V 递归函数的栈使用:以阶乘函数为例

在处理递归函数时&#xff0c;RISC-V 体系架构的寄存器数量有限。为了确保每次递归调用能正确保存和恢复寄存器的状态&#xff0c;栈&#xff08;stack&#xff09;提供了灵活的解决方案。本文将结合具体的汇编代码和递归的阶乘函数 fact 来讲解 RISC-V 中如何利用栈进行寄存器…...

【保研纪念】计算机保研经验贴——南大cs、复旦cs、中南cs

文章目录 一、个人情况二、经验总结三、夏令营情况1、南京大学计算机学院&#xff08;5月31日-6月2日&#xff09;2、复旦大学计算机学院&#xff08;7月1日-7月4日&#xff09;3、中南大学计算机学院&#xff08;7月5日-7月7日&#xff09;4、武汉大学计算机学院 四、预推免情…...

TopOn对话游戏魔客:2024移动游戏广告应如何突破?

TopOn对话游戏魔客&#xff1a;2024移动游戏广告应如何突破&#xff1f; 近年来&#xff0c;游戏广告投放的成本日益走高&#xff0c;ROI如何回正&#xff0c;素材如何创新等问题困扰着每一个广告主。在隐私政策的实施下&#xff0c;广告投放难度也在不断升级。 据data.ai发布…...

Chainlit集成LlamaIndex实现知识库高级检索(BM25全文检索器)

检索原理 BM25Retriever类是一个基于BM25算法设计的检索器&#xff0c;它主要用于从一组文档或节点中检索出与查询最相关的文档或节点。这个类的设计目的是为了提高文本检索的效率和准确性&#xff0c;尤其是在处理大量文本数据时。 BM25&#xff08;Best Matching 25&#x…...

Dubbo入门案例

Dubbo 学习地址&#xff1a;Dubbo3 简介_w3cschool&#xff1b; 01-Dubbo入门案例 ​ 我们先来新建一个Dubbo的小案例来体验一下Dubbo的使用&#xff0c;我们先来创建一个springboot的项目。 1.1-zookeeper下载启动 ​ 在编写我们的入门案例之前&#xff0c;我们需要先去下…...

android设计模式的建造者模式,请举例

在Android开发中&#xff0c;建造者模式&#xff08;Builder Pattern&#xff09;是一种常用的设计模式&#xff0c;它主要用于构建复杂对象。建造者模式通过将复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。这种模式特别适用于那些需要多个…...

【探索智谱AI的CogVideoX:视频生成的新前沿】

2024年8月6日&#xff0c;智谱AI宣布其开源视频生成模型CogVideoX&#xff0c;激发了开发者的创造力和对新技术的期待。 一、CogVideoX模型概述 CogVideoX 是一款先进的视频生成工具&#xff0c;可基于最长 226 个 token 的提示生成视频&#xff0c;时长可达 6 秒&#xff0c;…...

ant design vue做表单验证及form表单外验证、父子嵌套多个表单校验

1、form表单验证(若有时遇到输入框有值但是还是触发验证规则了&#xff0c;请检查form表单绑定正确吗、校验规则正确吗、表格数据字段名正确吗) <a-form:model"formState":label-col"{ span: 8 }":wrapper-col"{ span: 16 }":rules"rul…...

爱速搭百度低代码开发平台

爱速搭介绍 爱速搭是百度智能云推出的低代码开发平台&#xff0c;它灵活性强&#xff0c;对开发者友好&#xff0c;在百度内部大规模使用&#xff0c;有超过 4w 内部页面是基于它制作的&#xff0c;是百度内部中台系统的核心基础设施。 它具备以下功能&#xff1a; 页面制作…...

2024icpc(Ⅱ)网络赛补题E

E. Escape 思路&#xff1a; 可以看成 Sneaker 和杀戮机器人都不能在原地停留&#xff0c;然后杀戮机器人有个活动范围限制。如果 Sneaker 和杀戮机器人可以在原地停留&#xff0c;那么 Sneaker 到达一个点肯定会尽可能早&#xff0c;而且时间必须比杀戮机器人到达这个点短。那…...

mac怎么设置ip地址映射

最近开发的项目分为了两种版本&#xff0c;一个自己用的&#xff0c;一个是卖出去的。 卖出的域名是和自己的不一样的&#xff0c;系统中有一些功能是只有卖出去的版本有的&#xff0c;但我们开发完之后还得测试&#xff0c;那就需要给自己的电脑配置一个IP地址映射了&#xf…...