缓存种类的介绍、工作机制和设置的建议

缓存种类的介绍、工作机制和设置的建议

缓存分类

缓存主要有两大类,一类是缓存,英文一般是Cache、Buffer。这类缓存是由应用程序设定和管理的,所有文件公用的缓存,BT使用这种缓存。另一类是文件缓存,英文一般是File Buffer。这类缓存是由系统设定和管理的,每个文件都有自己专用的文件缓存,EM使用这类缓存。

Cache、Buffer是由应用程序设定和管理的,它并不一定位于物理内存中。不过可以通过一个简单的测试知道它是否位于物理内存中。首先,将缓存大小设定为几M,运行一段时间,记录下程序占用的物理内存和虚拟内存大小。然后将缓存大小设定为刚才值得10倍,再运行一段时间,记录下程序占用的物理内存和虚拟内存大小。比较两次记录,看看是物理内存占用是否明显增大,明显的话,缓存位于物理内存之中。如果是虚拟内存占用明显增大,而物理内存变化不明显,那么这个应用程序的缓存并不位于物理内存之中。

File Buffer由于是系统设定和管理的,只要你的物理内存充足,一般都是位于物理内存中。又由于它是每个文件专用的,即使只设定了1M的File Buffer,你如果打开了30个文件,那么就是总共30M的File Buffer。后面介绍完原理后,你就应该知道这对绝大部分人已经足够了。

缓存工作原理

缓存(Cahce、Buffer)可以细分为读和写。读缓存(Read Buffer)作用是将文件内容预读到内存中,在读操作前检查文件是否在缓存中(术语是命中),没有命中的话,在从硬盘中读取文件。从上述工作原理可知,命中率读缓存的关键指标。

现在,我们分析命中率。命中率分顺序读取命中率和随机读取命中率。

从计算机的专业书籍中我们知道,CPU的高速缓存可以看作是物理内存的读缓存,两者的容量比一般是1:1000,然而CPU高速缓存的命中率一般不低于80%。因此我们知道,只需要很小的缓存就可以使得顺序读取的命中率很高。

而随机读取的命中率,用概率论算算就知道,1G的内容需要800M的缓存才能达到80%的命中率。需要极大的缓存才能做到较高的命中率。

在实际中,顺序读取的发生频率比随机读写要多少几个数量级,因此用更好的缓存算法提高顺序读取的命中率才是读缓存的前进方向,单纯提升缓存大小没有太大意义。

综合上面的分析我们知道,提高读缓存的效果并不需要很大的缓存,即使设置了很大的缓存,也是在浪费你的物理内存。

写缓存(Write Buffer)的作用是在写入文件之前,先将要写入的内容写到内存中,积累到一定的量以后,再写入实际文件。因此,写缓存没有命中率的说法,它的效果只和写入速度和缓存大小有关。

文件缓存(File Buffer)是由系统设置和管理的,每打开一个文件,系统会自动给那个文件分配File Buffer,一般不分读写。虽然说Windows很废品,但是它的File Buffer算法不比一般软件差,所以关键是设置多大比较好而已。但是,如果File Buffer设置过大,例如30M,你往里面写了10M的数据,系统很可能认为缓存还很空,并不进行实际写入操作。万一在这时断电或者程序崩溃,你这10M就会丢失了。

BT缓存的大小

缓存的大小自然和读写速度相关,在这里我把普通带宽、小水管定义为2MADSL,U/D=64K/256K;高带宽、大水管定义为U/D=1M/2M

对于小水管来说,8M的写缓存(Write Buffer)需要半分钟才能填满,平均来说大概10S~15S写一次硬盘,如果这个频率你都不能接受的话,那你还是用无盘工作站好了。

至于读缓存,BT的上传是按文件块进行的(一般的种子,文件块大小是256K/512K)。64K的上传槽(Slot)一般是4~6,上传槽速度(Slot Speed)一般不超过20K/S,一个文件块足够它传10S。因此,给每个Slot两个文件块的读缓存就差不多了,害怕命中率不够高,每个Slot四个文件块也应该够了。具体算一下,512K*6Slot*(2~4)=6~12M,也就是说6~12M的读缓存就足够了。

把读写缓存加起来,8+12=20M,对于小水管是足够多了。用UT,使用上述缓存大小设定,读缓存的命中率能达到85%+。至于200M的缓存,如BC之流,命中率可能可以提升,但是提升的很有限。而且,由于随机读取的客观存在,即使你有200M缓存,你也不可能保证命中,读硬盘的频率不会比20M缓存低多少。

对于大水管来说,想像小水管一样10~15S写一次硬盘是不可能的,而且BT下载完一个完整的文件块后,为了保证数据安全,会尽快将那个数据块写入硬盘。因此,对于大水管来说,设置10倍于下载速度的写缓存,满足3~5S写一次硬盘的要求就可以了,太大也没有意义。

大水管由于上传速度快,发生随机读取的可能性更高了,平均几秒钟就会发生一次不命中,必需读硬盘。因此,读缓存的量也不需要太多,缓存100个左右的文件块,也就是大约50M的缓存也就差不多了。

加起来大概需要70M的缓存,同样的,在这个情况下就算设置200M的缓存,读硬盘的频率也不见得低多少。

EM缓存的大小

前文已经说了,EM的缓存是针对文件的,如假设每个Slot对应一个文件,那么EM缓存大小时候合理关键看Slot Speed。

对于小水管,Slot Speed也是就是10多20K,512K的File Buffer足够它挥霍20S以上,足够了。

如果说你只下载少量文件,可能有多个Slot在写入同一文件,可能就需要1M的File Buffer。

对于大水管,Slot Speed上百,但这并不意味着需要10M以上的File Buffer。原因有两个,一个和BT一样,由于随机读取的存在,你必须读硬盘;另一个就是File Buffer越大,文件丢失的可能性越大,而且这个可能性是指数级增长的。因此,即使是大水管,1.5M~2M的File Buffer也差不多了。可以利用优先级的管理,让EM上传不同的文件,下载的文件数量也多一点,让每个Slot对应不同的文件。

合集下载

Redis配置参数详解

Redis配置参数详解

Redis配置参数详解

Redis是⼀个应⽤⾮常⼴泛的⾼性能Key-Value型数据库,与memcached类似,但功能更加强⼤!

本⽂将按照不同功能模块的⽅式,依次对各个功能模块的配置参数进⾏详细介绍。

GENERAL

./redis-server /path/to/redis.conf 按照指定的配置⽂件启动

include /path/to/other.conf 包含其它的redis配置⽂件

daemonize yes 启⽤后台守护进程运⾏模式

pidfile /var/run/redis.pid redis启动后的进程ID保存⽂件

port 6379 指定使⽤的端⼝号

bind IP 监听指定的⽹络接⼝

unixsocket /tmp/redis.sock 指定监听的socket,适⽤于unix环境

timeout N 客户端空闲N秒后断开连接,参数0表⽰不启⽤

loglevel notice 指定服务器信息显⽰的等级,4个参数分别为debug\verbose\notice\warning

logfile “” 指定⽇志⽂件,默认是使⽤系统的标准输出

syslog-enabled no 是否启⽤将记录记载到系统⽇志功能,默认为不启⽤

syslog-ident redis 若启⽤⽇志记录,则需要设置⽇志记录的⾝份

syslog-facility local0 若启⽤⽇志记录,则需要设置⽇志facility,可取值范围为local0~local7,表⽰不同的⽇志级别

databases 16 设置数据库的数量,默认启动时使⽤DB0,使⽤“select ”可以更换数据库

tcp-backlog 511 此参数确定TCP连接中已完成队列(3次握⼿之后)的长度,应⼩于Linux系统的/proc/sys/net/core/somaxconn的值,此选

项默认值为511,⽽Linux的somaxconn默认值为128,当并发量⽐较⼤且客户端反应缓慢的时候,可以同时提⾼这两个参数。tcp-keepalive 0 指定ACKs的时间周期,单位为秒,值⾮0的情况表⽰将周期性的检测客户端是否可⽤,默认值为60秒。

linux dns 原理

linux dns 原理

linux dns 原理

Linux DNS原理

DNS(Domain Name System,域名系统)是互联网中最重要的基础设施之一,它负责将人类可读的域名转换为计算机可理解的IP地址。在Linux操作系统中,DNS服务是一个至关重要的组成部分。本文将介绍Linux DNS的原理和工作机制。

一、域名解析过程

1.1 域名解析的基本概念

域名解析是将域名转换为IP地址的过程。在Linux系统中,域名解析过程主要分为递归解析和迭代解析两种方式。

递归解析是指DNS客户端向本地DNS服务器查询域名的IP地址,如果本地DNS服务器缓存中没有该域名的IP地址,则会向根DNS服务器发起查询请求,根DNS服务器再将查询请求转发给下一级DNS服务器,直到找到对应的IP地址,并将结果返回给DNS客户端。递归解析的过程是一种自上而下的查询方式。

迭代解析是指DNS客户端向本地DNS服务器查询域名的IP地址,如果本地DNS服务器缓存中没有该域名的IP地址,则会向根DNS服务器发起查询请求,根DNS服务器会返回下一级DNS服务器的地址给本地DNS服务器,然后本地DNS服务器再向下一级DNS服务器发起查询请求,直到找到对应的IP地址,并将结果返回给DNS客户端。迭代解析的过程是一种自下而上的查询方式。

1.2 域名解析的具体过程

在Linux系统中,域名解析的具体过程如下:

1)DNS客户端向本地DNS服务器发起查询请求;

2)本地DNS服务器查询自身缓存,如果有对应的IP地址,则将结果返回给DNS客户端;

3)如果本地DNS服务器缓存中没有对应的IP地址,则本地DNS服务器会向根DNS服务器发起查询请求;

4)根DNS服务器返回下一级DNS服务器的地址给本地DNS服务器;

5)本地DNS服务器再向下一级DNS服务器发起查询请求;

6)重复步骤5,直到找到对应的IP地址;

7)本地DNS服务器将结果返回给DNS客户端,并将结果缓存起来。

群晖DS920+进阶设置,养一片属于自己的“云”

群晖DS920+进阶设置,养一片属于自己的“云”

群晖DS920+进阶设置,养⼀⽚属于⾃⼰的“云”

要是现在来批判⾃⼰选购的第⼀台 NAS,我肯定能写出不少批评的话来表达不满的情绪。但等等,这个不满并不是指这台设备的表现如何如何,⽽是对我⾃⼰当年的选择的不

满。

为什么不选择更多盘位的型号?为什么不选择容量更⼤的硬盘?为什么不选择更好的 RAID 形态?为什么不选择更快的⽹络设置。这⼀个个反问句都是我现在使⽤ NAS 时要问

⾃⼰的问题,甚⾄要锤⾃⼰⼏下才能平复⼼情。

毕竟随着时间以及使⽤场景的变化,NAS 对我⽽⾔不仅仅也不应该只是个简单的下载站或仓库盘,需要有更强的性能去承载更多的需求。

是的,我现在需要⽤到的 NAS 是有更灵活的 RAID 形态,是能够有更⼤容量的同时,还有着更灵活的容灾可能。还要能够有更快的局域⽹传输速度以及⽀持多⽤户同时使⽤不

卡顿,更是要结合我的实际使⽤需要,在摄像头视频存储、NAS 协同⼯作等⽅⾯满⾜我的需要。

所以这次的折腾也就是我的第⼆台 NAS,群晖 DS920+ 的使⽤体验或者说是折腾,更多是个⼈思路和实际操作,甚⾄还有点战未来的设定。对 NAS 相关概念的科普或者是选

购,当年《群晖DS216+II选购备忘录:养⼀⽚属于⾃⼰的“云”》⾥的相关内容依然可以作为参考,下⽂就不多作介绍了。

整理⾃⼰在第⼀次使⽤ NAS 后的各种想法以及能给出来的选购意见,其实归纳总结起来就是⼀句话,那就是“⼀步到位”,要是扩展点来说就是“尽可能的⼀步到位”。因为⼏乎每

个环节都是环环相扣,互相影响的。

特别是 NAS 的盘位数量决定了 RAID 形态的可能性,往往还决定了 NAS 的定位⾼低,RAID 形态与硬盘容量⼀同决定最终可使⽤的容量空间。⽽ NAS 的处理器类型、性能、内存容量、扩展性以及系统等细节,则决定了后续的扩展能⼒、传输速度以及使⽤体验。

这么⼀来我的选择就很明确了,那就是要⽐现在所使⽤的双盘位 DS218+ 有更多盘位、更多接⼝、更强的扩展性以及更快的速度。所以群晖最新推出的 4 盘位、⽀持内存扩展、SSD 加速以及链路聚合,还有⼀个能够“战未来” 的 eSATA 接⼝的 DS920+ 就是个相当好的选择。

MegaRAID Storage Manager操作手册V1.1

MegaRAID Storage Manager操作手册V1.1

MegaRAID Storage Manager操作手册V1.0

2011-4-21 by LFM

目录

MegaRAID Storage Manager操作手册V1.0 .................................................................................. 1

一、如何进入管理软件 ........................................................................................................... 2

User Name:登陆名为操作系统的用户名 ..................................................................................... 3

二、管理软件主界面 ............................................................................................................... 4

三、创建阵列 ........................................................................................................................... 5

四、创建热备盘 ....................................................................................................................... 9

五、删除阵列和热备盘 ......................................................................................................... 10

easyexcel导出百万数据的原理

easyexcel导出百万数据的原理

一、背景介绍

EasyExcel是一个基于POI实现的工具,可以提供更加便捷的Excel操作功能。在实际开发中,我们经常遇到需要导出大量数据到Excel表格的情况。了解EasyExcel导出百万数据的原理对于我们理解其工作机制和优化性能具有重要意义。

二、EasyExcel的基本原理

1. EasyExcel是基于POI进行封装的Excel操作框架,提供了简单易用的API接口,同时兼顾了性能和稳定性。

2. EasyExcel的核心是通过POI来生成Excel文件,而POI是Apache基金会的一个开源项目,可以实现对Excel文件的读写操作。

3. EasyExcel在导出大量数据时,采用了分批次写入的机制,避免了一次性写入大量数据导致内存溢出的问题。

4. 在导出数据时,EasyExcel会将数据按照一定的规则进行缓存,然后分批次写入Excel文件,以减轻内存压力和提高性能。

三、优化原理

1. 分批次读取数据:在进行数据导出时,采用分批次读取数据的方式,避免一次性读取大量数据导致内存占用过多的问题。

2. 分批次写入Excel文件:采用分批次写入Excel文件的方式,将数据缓存并分批次写入Excel文件,以减轻内存压力和提高性能。

3. 采用多线程:在进行数据导出时,可以采用多线程的方式进行数据处理和写入,提高数据导出的效率和速度。

4. 合理设置缓存大小:根据系统的内存情况和数据量的大小,合理设置数据的缓存大小,以避免内存溢出和提高数据导出的效率。

5. 使用SXSSFWorkbook:在使用POI的过程中,可以使用SXSSFWorkbook来代替XSSFWorkbook,以减轻内存压力和提高性能。

四、工作原理

1. 数据读取:从数据源中读取数据,根据设定的规则,将数据按照一定的规则进行分批次读取,并进行数据缓存。

2. 数据导出:将缓存的数据分批次写入Excel文件,采用多线程的方式进行数据处理和写入,以提高数据导出的效率和速度。

CDN概念基本介绍

CDN概念基本介绍

CDN概念基本介绍

CDN是构筑在现有的互联网基础上的一种先进的流量分配网络。它通过先进的内容智能路由技术,在互联网用户访问网站时,将请求自动指向到分布于各地的离用户最近的缓存服务器上直接访问,从而提高用户访问时的响应速度和服务的可用性,同时提高网站的服务承载能力及网站运行的安全性,最终改善互联网的服务质量。

对于网站运营者而言,CDN可以帮助网站提升网民的终端访问体验,从而提升网站的访问量和网民访问总时长等,在其他因素不变的前提下,可以间接的提升一些网站比较关注的效果,比如对于宣传性网站可以在一定程度上提升其宣传效果,对于经营性网站可以在一定程度上提升订单量,从而帮助网站更好的运营。

通过下面一个类比可能更容易理解CDN的工作源理

首先,CDN网络中的节点就像分布在全国各地的电影院,人们看电影一般会到离自己最近的电影院去观看,以减少开车往返的时间和可能的堵车情况,而CDN网络通过内容智能路由功能,保证互联网用户被自动地分配到就近可用的CDN节点上进行访问,从而减少用户跨区域、跨网络访问导致的延迟和减少网络传输中潜在的拥塞和设备故障,从而保证访问质量。

其次, CDN网络独有的内容管理模式保证互联网用户在各节点访问到的内容与网站源服务器上的内容完全一致,就像各地电影观众在不同电影院看到的同一部电影的内容一定是一样的。

第三,CDN网络有效地将用户分散到给地的CDN节点中,这样可以保证同时支持的用户人数和访问量比集中服务的方式大很多。就像全国有非常多的电影院,有新片上影的时候,同时观看的人数可以达到数十万人,如果集中建这样一个大电影院几乎是不可想象的。

1.1 静态页面加速方案

电影观众 分布各地的电影院 电影

互联网用户 分布各地的CDN节网站 内容分发

用户就近访问

电影发行

用户就近观看

1.1.1 静态页面加速示意图

ChinaCache将根据网站带宽为网站提供服务节点,覆盖中国联通、中国电信、中国移动、教育网等ISP,确保网站全网访问加速。

redis_scan_count原理_概述及解释说明

redis scan count原理 概述及解释说明

1. 引言

1.1 概述

在当今互联网时代,数据的处理和存储成为各行各业关注的焦点。针对高并发、大量请求的情况下,如何快速高效地检索、查询和处理数据成为了一个重要的问题。Redis作为一种基于内存的键值存储系统,以其出色的性能和简单易用的特性而广泛应用于各类场景中。

本文将深入探讨Redis中SCAN命令及其COUNT参数的原理与工作方式。通过分析Redis概述、SCAN命令解释以及COUNT参数解析等内容,旨在帮助读者更好地理解Redis SCAN COUNT技术,并在实际应用中能够正确使用。

1.2 文章结构

本文共分为五个部分,具体内容如下:

(这里列举文章目录细节)

1.3 目的

本文旨在全面介绍Redis SCAN COUNT原理,通过深入剖析其底层实现原理和工作方式,揭示其在高并发场景下的适用性和注意事项。通过本文的阅读,读者将能够更加准确地使用Redis SCAN COUNT技术进行数据查询与处理,并了解其潜在优化方法与局限性。

(接下来部分请自行撰写)

2. Redis SCAN COUNT原理:

2.1 Redis概述:

Redis是一个开源的使用C语言编写的高性能键值存储系统。它支持不同类型的数据结构,包括字符串、哈希表、列表等,并提供了丰富的操作命令。在Redis中,SCAN命令用于迭代遍历存储在键空间中的元素。

2.2 SCAN命令解释:

SCAN命令用于逐步遍历整个数据库中与给定模式相匹配的键。它通过游标(cursor)来实现遍历,在每次执行SCAN命令时,都会返回一批与模式匹配的键和其对应的值。通过连续执行多次SCAN命令,可以遍历整个数据库。

2.3 COUNT参数解析:

在使用SCAN命令时,可以指定COUNT参数来限制每次返回结果的数量。COUNT参数定义了每次迭代所返回元素的最大数量,默认值为10。通过调整COUNT参数,可以根据需求控制返回结果的数量。

人民医院PACS影像存储技术建议方案

人民医院PACS影像存储技术建议方案

集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]

资料编码

xxxxxxx人民医院PACS影像存储技术建议书

目录

概述

项目背景

随着xxxxx医院业务的逐渐发展,以及业务数据量不断的增大,目前的PACS存储系统已经无法满足其业务增长的需求。原先存放在老存储中的数据,无论在可靠性、容量还是性能方面都无法满足业务要求。因此,建设一套集中存储系统迫在眉睫。集中存储方式,不仅可以解决数据无法共享、本地扩容出现瓶颈等问题,还可以使业务系统的性能得到大幅提升、业务数据的安全性得到更为有效的保障。

建设规模及目标

xxxxx医院本次将对PACS系统进行集中存储的建设,将数据都集中存储在集群NAS存储系统中。

根据PACS的存储需求进行分析:

1) 该局点主要应用是PACS影像数据的存储,在数据中心放置集群NAS系统,将各种影像的非结构化数据集中存储在该系统上;

2) 本次建设需要考虑未来几年内的容量需求扩容,要求存储系统具备高扩展性;

3) 数据量扩展时需满足业务增多所带来的并发增大的需求,也就是说,容量扩展时,并发量需要增大,整体性能得到提升; PACS方案设计原则 通过对用户需求的了解,结合PACS系统的应用特点,建议用户存储系统在建设过程中应当遵循如下原则进行:

安全可靠性原则

系统支持从硬件层面,数据层面到业务层面高可用,满足可用性原则;

系统支持存储系统集群,满足高可靠性需求;系统具备充分的数据冗余,数据容错能力;

系统具有专业的技术保障体系以及数据可靠性保证机制;

系统在存储节点损坏时(包括硬盘,机柜的故障),不会丢失数据;

系统在发生数据损坏时,有数据自愈能力;

确保系统具有高度的安全性,提供安全的登录和访问措施,防止系统被攻击;

CPUCache机制以及Cachemiss

CPUCache机制以及Cachemiss

CPU体系结构之cache⼩结

1.What is cache?

Cache是⽤来对内存数据的缓存。

CPU要访问的数据在Cache中有缓存,称为“命中” (Hit),反之则称为“缺失” (Miss)。

CPU访问它的速度介于寄存器与内存之间(数量级的差别)。实现Cache的花费介于寄存器与内存之间。

现在 CPU 的 Cache ⼜被细分了⼏层,常见的有 L1 Cache, L2 Cache, L3 Cache,其读写延迟依次增加,实现的成本依次降低。

现代系统采⽤从 Register ―> L1 Cache ―> L2 Cache ―> L3 Cache ―> Memory ―> Mass storage的层次结构,是为解决性能与价格⽭盾所采⽤的折

中设计。

下图描述的就是CPU、Cache、内存、以及DMA之间的关系。程序的指令部分和数据部分⼀般分别存放在两⽚不同的cache中,对应指令缓存(I-Cache)和数据缓存(D-Cache)。

引⼊ Cache 的理论基础是程序局部性原理,包括时间局部性和空间局部性。即最近被CPU访问的数据,短期内CPU 还要访问(时间);被 CPU 访问的

数据附近的数据,CPU 短期内还要访问(空间)。因此如果将刚刚访问过的数据缓存在Cache中,那下次访问时,可以直接从Cache中取,其速度可以

得到数量级的提⾼。

CPU缓存(Cache Memory)位于CPU与内存之间的临时存储器,它的容量⽐内存⼩但交换速度快。在缓存中的数据是内存中的⼀⼩部分,但这⼀⼩部分

是短时间内CPU即将访问的,当CPU调⽤⼤量数据时,就可避开内存直接从缓存中调⽤,从⽽加快读取速度。

在CPU中加⼊缓存是⼀种⾼效的解决⽅案,这样整个内存储器(缓存+内存)就变成了既有缓存的⾼速度,⼜有内存的⼤容量的存储系统了。缓存对CPU

的性能影响很⼤,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。

浅论计算机缓存的工作机制

科技信息 。计算机与信息技术o SCIENCE&TECHNOLOGYINFORMATION 2007年第33期 

浅论计算机缓存的工作机制 

吴继栋 

(许昌学院04级计算机科学与应用专业 河南许昌461000) 

【摘要】高速缓存是提高计算机性能的一种关键技术。文章主要分析了高速缓存所在的计算机存储系统结构、磁盘高速缓存工作原理,深 

入讨论高速缓存管理器与其它的内核组件相互配合协调工作的机制 

【关键词】高速缓存cache管理器;VMM;内核 

THE CALCULAToR IS SLoW To SAVE A WoRK A A伍CHANIsM 

【Summary]The high speed is slow to save is exaltation calculator function of a kind of key technique.Article main analysis high speed slow save 

the calculator of place saving system structure,disk high speed slow save work p矗nciple,thorough discussion high speed slow save management 

machine and other of inside pit the module is mutually match moderate work of mechanism. 【Key word】CacheManagement machine;VMM;Inside pit 

1.引言 

随着计算机应用领域的不断扩大,应用程序对计算机处理速度的 要求也越来越高。为解决CPU运算速度与主存读写速度之间不匹配 的矛盾.通过使用cache作为主存储器和处理器问的缓冲器。本文在 

对计算机整个存储器系统结构分析的基础上.根据cache工作原理. 

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档