首页 NoSQL数据库-MongoDB和Redis

NoSQL数据库-MongoDB和Redis

举报
开通vip

NoSQL数据库-MongoDB和RedisNoSQL数据库 —MongoDB和Redis 目 录 41NoSQL简述 42MongoDB简介 53术语介绍 64MongoDB资源消耗 65交互式shell 76一般功能 76.1插入 76.2查询 76.3删除 86.4索引 86.5map/reduce 87模式设计 98嵌入与引用 119GridFS 119.1GridFS表示的对象信息 129.2GridFS管理 1310Replication(复制) ...

NoSQL数据库-MongoDB和Redis
NoSQL数据库 —MongoDB和Redis 目 录 41NoSQL简述 42MongoDB简介 53术语介绍 64MongoDB资源消耗 65交互式shell 76一般功能 76.1插入 76.2查询 76.3删除 86.4索引 86.5map/reduce 87模式 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 98嵌入与引用 119GridFS 119.1GridFS表示的对象信息 129.2GridFS管理 1310Replication(复制) 1310.1master-slave模式 1310.2replica pairs模式 1410.3受限的master-master复制 1411Sharding(分片) 1411.1sharding介绍 1511.2sharding的配置和管理 1612Java API简介 1713MongoDB实例 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 1713.1图片保存在文件系统中 1913.2图片保存在数据库中 2314MongoDB常用API总结 2715Redis简介 2715.1Redis特性 2816Redis数据类型 2816.1String类型 2816.2List类型 2916.3Set类型 2916.4ZSet类型 2916.5Hash类型 2917All data in memory, but saved on disk 3018Redis的Master-Slave模式 3119Redis虚拟内存管理 3120Redis实例分析 3221Redis命令总结 3221.1连接操作相关的命令 3221.2对value操作的命令 3321.3对String操作的命令 3321.4对List操作的命令 3421.5对Set操作的命令 3521.6对zset(sorted set)操作的命令 3521.7对Hash操作的命令 3621.8持久化 3621.9远程服务控制 NoSQL数据库 —MongoDB和Redis 1NoSQL简述 CAP(Consistency,Availabiity,Partition tolerance)理论告诉我们,一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。关系型数据库通过把更新操作写到事务型日志里实现了部分耐用性,但带来的是写性能的下降。MongoDB等NoSQL数据库背后蕴涵的哲学是不同的平台应该使用不同类型的数据库,MongoDB通过降低一些特性来达到性能的提高,这在很多大型站点中是可行的。因为MongoDB是非原子性的,所以如果如果应用需要事务,还是需要选择MySQL等关系数据库。 NoSQL数据库,顾名思义就是打破了传统关系型数据库的范式约束。很多NoSQL数据库从数据存储的角度看也不是关系型数据库,而是key-value数据 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 的hash数据库。由于放弃了关系数据库强大的SQL查询语言和事务一致性以及范式约束,NoSQL数据库在很大程度上解决了传统关系型数据库面临的诸多挑战。 在社区中,NoSQL是指“not only sql”,其特点是非关系型,分布式,开源,可水平扩展,模式自由,支持replication,简单的API,最终一致性(相对于即时一致性,最终一致性允许有一个“不一致性窗口”,但能保证最终的客户都能看到最新的值)。 2MongoDB简介 mongo取自“humongous”(海量的),是开源的文档数据库──nosql数据库的一种。 MongoDB是一种面向集合(collection)的,模式自由的文档(document)数据库。 面向集合是说数据被分成集合的形式,每个集合在数据库中有惟一的名称,集合可以包含不限数目的文档。除了模式不是预先定义好的,集合与RDBMS中的表概念类似,虽然二者并不是完全对等。数据库和集合的创建是“lazy”的,即只有在第一个document被插入时集合和数据库才真正创建——这时在磁盘的文件系统里才能看见。 模式自由是说数据库不需要知道存放在集合中的文档的结构,完全可以在同一个集合中存放不同结构的文档,支持嵌入子文档。 文档类似于RDBMS中的记录,以BSON的格式保存。BSON是Binary JSON的简称,是对JSON-like文档的二进制编码序列化。像JSON(JavaScript Object Notation)一样,BSON支持在对象和数组内嵌入其它的对象和数组。有些数据类型在JSON里不能表示,但可以在BSON里表示,如Date类型和BinData(二进制数据),Python原生的类型都可以表示。与Protocal Buffers(Google开发的用以处理对索引服务器请求/应答的协议)相比,BSON模式更自由,所以更灵活,但这样也使得每个文档都要保存字段名,所以空间压缩上不如Protocol Buffers。 BSON第一眼看上去像BLOB,但MongoDB理解BSON的内部机制,所以MongoDB可以深入BSON对象的内部,即使是嵌套的对象,这样MongoDB就可以在顶层和嵌套的BSON对象上建立索引来应对各种查询了。 MongoDB可运行在Linux、Windows和OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB为了提高性能使用了内存映射文件进行数据管理,而在32位模式运行时支持的最大文件为2GB。 MongoDB查询速度比MySQL要快,因为它cache了尽可能多的数据到RAM中,即使是non-cached数据也非常快。当前MongoDB官方支持的客户端API语言就多达8种(C|C++|Java|Javascript|Perl|PHP|Python|Ruby),社区开发的客户端API还有Erlang、Go、Haskell...... 3术语介绍 数据库、集合、文档 每个MongoDB服务器可以有多个数据库,每个数据库都有可选的安全认证。数据库包括一个或多个集合,集合以命名空间的形式组织在一起,用“.”隔开(类似于JAVA/Python里面的包),比如集合blog.posts和blog.authors都处于"blog"下,不会与bbs.authors有名称上的冲突。集合里的数据由多个BSON格式的文档对象组成,document的命名有一些限定,如字段名不能以"$"开头,不能有".",名称"_id"被保留为主键。 如果插入的文档没有提供“_id”字段,数据库会为文档自动生成一个ObjectId对象作为“_id”的值插入到集合中。字段“_id”的值可以是任意类型,只要能够保证惟一性。BSON ObjectID是一个12字节的值,包括4字节的时间戳,3字节的机器号,2字节的进程id以及3字节的自增计数。建议用户还是使用有意义的“_id”值。 MongoDb相比于传统的SQL关系型数据库,最大的不同在于它们的模式设计(Schema Design)上的差别,正是由于这一层次的差别衍生出其它各方面的不同。 如果将关系数据库简单理解为由数据库、表(table)、记录(record)三个层次概念组成,而在构建一个关系型数据库的时候,工作重点和难点都在数据库表的划分与组织上。一般而言,为了平衡提高存取效率与减少数据冗余之间的矛盾,设计的数据库表都会尽量满足所谓的第三范式。相应的,可以认为MongoDb由数据库、集合(collection)、文档对象(Document-oriented、BSON)三个层次组成。MongoDb里的collection可以理解为关系型数据库里的表,虽然二者并不完全对等。当然,不要期望collection会满足所谓的第三范式,因为它们根本就不在同一个概念讨论范围之内。类似于表由多条记录组成,集合也包含多个文档对象,虽然说一般情况下,同一个集合内的文档对象具有相同的格式定义,但这并不是必须的,即MongoDb的数据模式是自由的(schema-free、模式自由、无模式),collection中可以包含具有不同schema的文档记录,支持嵌入子文档。 4MongoDB资源消耗 考虑到性能的原因,mongo做了很多预分配,包括提前在文件系统中为每个数据库分配逐渐增长大小的文件集。这样可以有效地避免潜在的文件系统碎片,使数据库操作更高效。 一个数据库的文件集从序号0开始分配,0,1...,大小依次是64M,128M,256M,512M,1G,2G,然后就是一直2G的创建下去(32位系统最大到512M)。所以如果上一个文件是1G,而数据量刚好超过1G,则下一个文件(大小为2G)则可能有超过90%都是空的。 如果想使磁盘利用更有效率,下面是一些解决方法: 1. 只建立一个数据库,这样最多只会浪费2G。 2. 每个文档使用自建的“_id”值而不要使用默认的ObjectId对象。 3. 由于每个document的每个字段名都会存放,所以如果字段名越长,document的数据占用就会越大,因此把字段名缩短会大大降低数据的占用量。如把“timeAdded”改为“tA”。 Mongo使用内存映射文件来访问数据,在执行插入等操作时,观察mongod进程的内存占用时会发现量很大,当使用内存映射文件时是正常的。并且映射数据的大小只出现在虚拟内存那一列,常驻内存量才反应出有多少数据cached在内存中。 【按照mongodb官方的说法,mongodb完全由系统内核进行内存管理,会尽可能的占用系统空闲内存,用free可以看到,大部分内存都是作为io cache被占用的,而这部分内存是可以释放出来给应用使用的。】 5交互式shell mongo类似于MySQL中的mysql进程,但功能远比mysql强大,它可以使用JavaScript语法的命令从交互式shell中直接操作数据库。如查看数据库中的内容,使用游标循环查看查询结果,创建索引,更改及删除数据等数据库管理功能。下面是一个在mongo中使用游标的例子: > for(var cur = db.posts.find(); cur.hasNext();) { ... print(tojson(cur.next())); ... } 输出: { "_id" : ObjectId("4bb311164a4a1b0d84000000"), "date" : "Wed Mar 31 17:05:23 2010", "content" : "blablablabla", "author" : "navygong", "title" : "the first blog" } ...其它的documents。 6一般功能 6.1插入 客户端把数据序列化为BSON格式传给DB后被存储在磁盘上,在读取时数据库几乎不做什么改动直接把对象返回给客户端,由client完成unserialized。如: > doc = {'author': 'joe', 'created': new Date('2010, 6, 21'), 'title':'Yet another blog post', 'text': 'Here is the text...', 'tags': ['example', 'joe'], 'comments': [{'author': 'jim', 'comment': 'I disgree'}, {'author': 'navy', 'comment': 'Good post'}], '_id': 'test_id'} > db.posts.insert(doc) 6.2查询 基本上你能想到的查询种类MongoDB都支持,如等值匹配,<,<=,>, >=,$ne,$in,$mod,$all,$size[1],$exists,$type[2],正则表达式匹配,全文搜索,......。还有distinct(),sort(),count(),skip()[3],group()[4],......。这里列表的查询中很多用法都和一般的RDBMS不同。 [1] 匹配一个有size个元素的数组。如db.things.find({a: {$size: 1}})能够匹配文档{a: ["foo"]}。 [2] 根据类型匹配。db.things.find({a : {$type : 16}})能够匹配所有a为int类型的文档。BSON协议中规定了各种类型对应的枚举值。 [3] 指定跳过多少个文档后开始返回结果,可以用在分页中。如:db.students.find().skip((pageNumber-1)*nPerPage).limit(nPerPage).forEach( function(student) { print(student.name + "

"); } )。 [4] 在sharded MongoDB配置环境中应该应该使用map/reduce来代替group()。 6.3删除 可以像查询一样指定条件来删除特定的文档。 6.4索引 可以像在一般的RDBMS中一样使用索引。提供了建立(一般、惟一、组合)索引、删除索引、重建索引等各种方法。索引信息保存在集合“system.indexes”中。 6.5map/reduce MongoDB提供了map/reduce方法来进行数据的批处理及聚集操作。和Hadoop的使用类似,从集合中接收输入,结果输出到另一个集合。如果你需要使用group,map/reduce会是个不错的选择。但MongoDB中的索引和 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 查询不是使用map/reduce,而是与MySQL相似。 7模式设计 Mongo式的模式设计 使用Mongo有很多种方式,你本能上可能会像使用关系型数据库一样去使用。当然这样也可以工作得很好,但却没能发挥出Mongo的真正威力。Monog是专门设计为富对象模型(rich object model)使用的。 例如:如果你建立了一个简单的在线商店并且把产品信息存储在关系型数据库中,那你可能会有两个像这样的表: item title price sku item_features sku feature_name feature_value 你进行了范式处理因为不同的物品有不同的特征,这样你不用建立一个包含所有特征的表了。在Mongo中你也可以像上面那样建立两个集合,但像下面这样存储每种物品会更有效。 item : { "title" : , "price" : <price> , "sku" : <sku> , "features" : { "optical zoom" : <value> , ... } } 因为只要查询一个集合就能取得一件物品的所有信息,而这些信息都保存在磁盘上同一个地方,因此大大提高了查询的速度。如果你想插入或更新一种特征,如db.items.update( { sku : 123 } , { "$set" : { "features.zoom" : "5" } } ),也不必在磁盘上移动整个对象,因为Mongo为每个对象在磁盘上预留了空间来适应对象的增长。 8嵌入与引用 以一实例来说,假设需要设计一个小型数据库来存储“学生、地址、科目、成绩”这些信息,那么关系型数据库的设计如图1所示,而key-value型数据库的设计则可能如图2所示。 图1 关系型的数据库设计 图2 key-value型的数据库设计 对比图1和图2,在关系型的数据库设计里划分出了4个表,而在key-value型的数据库设计里却只有两个集合。如果说集合与表一一对应的话,那么图2中应该也有4个集合才对,把本应该是集合的address和scores直接合入了集合students中,原因在于在key-value型的数据库里,数据模式是自由的。 以scores来说,在关系型的数据库设计中将其单独成一个表是因为student与score是一对多的关系,如果将score合入student表,那么就必须预留最多可能的字段,这会存在浪费,并且当以后新增一门课程时扩展困难,因此一般都会将score表单独出来。而对于key-value型的数据库就不同了,其scores字段就是一个BSON,该BSON可以只有一个for_course,也可以有任意多个for_course,其固有的模式自由特性使得它可以将score包含在内而无需另建一个score集合。 对于与student为一对一关系的address表也可以直接合入student,无需担心address的扩展性,当以后需要给address新增一个province字段,直接在数据插入时加上这个值即可。 当然,对于与student成多对多关系course表,为了减少数据冗余,可以将course建立为一个集合,同关系型的数据库设计中类似。 students文档中嵌入了address文档和scores文档,scores文档的“for_course”字段的值是指向courses集合的文档的引用。如果是关系型数据库,需要把“scores”作为一个单独的表,然后在students表中建立一个指向“scores”的外键。所以Mongo模式设计中的一个关键问题就是“是值得为这个对象新建一个集合呢,还是把这个对象嵌入到其它的集合中”。在关系型数据库中为了范式的要求,每个子项都要建一个单独的表,但在Mongo中使用嵌入式对象更有效,所以你应该给出不使用嵌入式对象而单独建一个集合的理由。 为什么说引用要慢些呢,以上面的students集合为例,比如执行: print( student.scores[0].for_course.name ); 如果这是第一次访问scores[0],那些客户端必须执行: student.scores[0].for_course = db.courses.findOne({_id:_course_id_to_find_}); //伪代码 所以每一次遍历引用都要对数据库进行一次这样的查询,即使所有的数据都在内存中。再考虑到从客户端到服务器端的种种延迟,这个时间也不会低。 有一些规则可以决定该用嵌入还是引用: 1. 第一个类对象,也就是处于顶层的,往往应该有自己的集合。 2. 排列项详情对象应该用嵌入。 3. 处于被包含关系的应该用嵌入。 4. 多对多的关系通常应该用引用。 5. 数据量小的集合可以放心地做成一个单独的集合,因为整个集合可以很快地cached。 6. 要想获得嵌入式对象的系统级视图会更困难一些。如上面的“Scores”如果不做成嵌入式对象可以更容易地查询出分数排名前100的学生。 7. 如果嵌入的是大对象,需要留意到BSON对象的4M大小限定(后面会讲到)。 8. 如果性能是关键就用嵌入。 下面是一些示例: 1. Customer/Order/Order Line-Item cutomers和orders应该做成一个集合,line-items应该以数组的形式嵌入在order中。 2. 博客系统 posts应该是一个集合;author可以是一个单独的集合,如果只需记录作者的email地址也可以以字段的方式存在于posts中;comments应该做成嵌入的对象。 9GridFS GridFS是MongoDB中用来存储大文件而定义的一种文件系统。MongoDB默认是用BSON格式来对数据进行存储和网络传输。但由于BSON文档对象在MongoDB中最大为4MB,无法存储大的对象。即使没有大小限制,BSON也无法满足对大数据集的快速范围查询,所以MongoDB引进了GridFS。 9.1GridFS表示的对象信息 1. 文件对象(类GridFSFile 的对象)的元数据信息。结构如下 { "_id" : <unspecified>, // unique ID for this file "filename" : data_string, // human name for the file "contentType" : data_string, // valid mime type for the object "length" : data_number, // size of the file in bytes "chunkSize" : data_number, // size of each of the chunks. Default is 256k "uploadDate" : data_date, // date when object first stored "aliases" : data_array of data_string, // optional array of alias strings "metadata" : data_object, // anything the user wants to store "md5" : data_string //result of running "filemd5" command on the file's chunks } 如下是put进去的一个文件例子: { _id: ObjId(4bbdf6200459d967be9d8e98), filename: "/home/hjgong/source_file/wnwb.svg", length: 7429, chunkSize: 262144, uploadDate: new Date(1270740513127), md5: "ccd93f05e5b9912c26e68e9955bbf8b9" } 2. 数据的二进制块以及一些统计信息。结构如下: { "_id": <unspecified>, // object id of the chunk in the _chunks collection "files_id": <unspecified>, // _id value of the owning {{files}} collection entry "n": data_number, // "chunk number" - starting with 0 "data": data_binary (type 0x02), // binary data for chunk } 因此使用GridFS可以储存富媒体文件,同时存入任意的附加信息,因为这些信息实际上也是一个普通的collection。以前,如果要存储一个附件,通常的做法是,在主数据库中存放文件的属性同时记录文件的path,当查询某个文件时,需要首先查询数据库,获得该文件的path,然后从存储系统中获得相应的文件。在使用GridFS时则非常简单,可以直接将这些信息直接存储到文件中。比如下面的Java代码,将文件file(file可以是图片、音频、视频等文件)储存到db中: 其中该方法的第一个参数的类型还可以是InputStream,byte[],从而实现多个重载的方法。 9.2GridFS管理 MongoDB提供的工具mongofiles可以从命令行操作GridFS。如: ./mongofiles -host localhost:1727 -u navygong -p 111 put ~/source_file/wnwb.svg 每种语言提供的MongoDB客户端API都提供了一套方法,可以像操作普通文件一样对GridFS文件进行操作,包括read(),write(),tell(),seek()等。 10Replication(复制) Mongo提供了两种方式的复制:简单的master-slave配置及replica pair的概念。 如果安全认证被enable,不管哪种replicate方式,都要在master/slave中创建一个能为各个database识别的用户名/密码。认证步骤如下: slave先在local.system.users里查找一个名为"repl"的用户,找到后用它去认证master。如果"repl"用户没有找到,则使用local.system.users中的第一个用户去认证。local数据库和admin数据库一样,local中的用户可以访问整个db server。 10.1master-slave模式 一个server可以同时为master和slave。一个slave可以有多个master,这种方式并不推荐,因为可能会产生不可预期的结果。 在该模式中,一般是在两个不同的机器上各部署一个MongDB实例,一个为master,另一作为slave。将MongoDB作为master启动,只需要在命令行输入: ./mongod --master 然后主服务进程将会在数据库中创建一个集合local.oplog.$main,该collection主要记录了事务日志,即需要在slave执行的操作。 而将MongoDB作为slave启动,只需要在命令行输入: ./mongod --slave --source <masterhostname>[:<port>] port不指定时即使用默认端口,masterhostname是master的IP或master机器的FQDN。 其他配置选项: --autoresync:自动sync,但在10分钟内最多只会进行一次。 --oplogSize:指定master上用于存放更改的数据量,如果不指定,在32位机上最少为50M,在64位机上最少为 1G,最大为磁盘空间的5%。 10.2replica pairs模式 以这种方式启动后,数据库会自动协商谁是master谁是slave。一旦一个数据库服务器断电,另一个会自动接管,并从那一刻起起为master。万一另一个将来也出错了,那么master状态将会转回给第一个服务器。以这种复制方式启动本地MongoDB的命令如下: ./mongod --pairwith <remoteserver> --arbiter <arbiterserver> 其中remoteserver是pair里的另一个server,arbiterserver是一个起仲裁作用的Mongo数据库服务器,用来协商pair中哪一个是master。arbiter运行在第三个机器上,利用“平分决胜制”决定在pair中的两台机器不能联系上对方时让哪一个做master,一般是能同arbiter通话的那台机器做master。如果不加--arbiter选项,出现网络问题时两台机器都作为master。命令db.$cmd.findOne({ismaster:1})可以检查当前哪一个database是master。 pair中的两台机器只能满足最终一致性。当replica pair中的一台机器完全挂掉时,需要用一台新的来代替。如(n1, n2)中的n2挂掉,这时用n3来代替n2。步骤如下: 1. 告诉n1用n3来代替n2:db.$cmd.findOne({replacepeer:1}); 2. 重启n1让它同n3对话:./mongod --pairwith n3 --arbiter <arbiterserver> 3. 启动n3:./mongod --pairwith n1 --arbiter <arbiterserver>。 在n3的数据没有同步到n1前n3还不能做master,这个过程长短由数据量的多少决定。 10.3受限的master-master复制 Mongo不支持完全的master-master复制,通常情况下不推荐使用master-master模式,但在一些特定的情况下master-master也可用。master-master也只支持最终一致性。配置master-master只需运行mongod时同时加上--master选项和--slave选项。如下: $ nohup mongod --dbpath /data1/db --port 27017 --master --slave --source localhost:27018 > /tmp/dblog1 & $ nohup mongod --dbpath /data2/db --port 27018 --master --slave --source localhost:27017 > /tmp/dblog2 & 这种模式对插入、查询及根据_id进行的删除操作都是安全的。但对同一对象的并发更新无法进行。 11Sharding(分片) 11.1sharding介绍 MongoDB包括一个自动分片的的模块(“mongos”),从而可以构建一个大的水平可扩展的数据库集群,可以动态地添加和移走机器。如下是一个数据库集群的示意图: mongod:数据库服务器进程,类似于mysqld。 shards:每个shard有一个或多个mongod,通常是一个master,多个slave组成replication。数据由集合按一个预定的顺序划分,某一个范围的数据被放到一个特定的shard中,这样可以通过shard的key进行有效的范围查询。 shard keys:用于划分集合,格式类似于索引的定义,也是把一个或多个字段作为key,以key来分布数据。如:{ name : 1 (1代表升序,-1代表降序)}、{ _id : 1 }、{ lastname : 1, firstname : 1 }、{ tag : 1, timestamp : -1 }。如果有100万人同名,可能还需要划分,因为放到一个块里太大了,这时定义的shar key不能只有一个name字段了。划分能够保证相邻的数据存储在一个server(当然也在相同的块上)。 chunks:是一个集合里某一范围的数据,(collection, minkey, maxkey)描述了一个chunk。块的大小有限定,当块里的数据超过最大值,块会一分为二。如果一个shard里的数据过多(添加shard时,可以指定这个shard上可以存放的最大数据量maxSize),就会有块迁移到其它的shard。同样,当添加新的server时,为了平衡各个server的负载,也会迁移chunk过去。 config server(配置服务器):存储了集群的元信息,包括每一个shard、一个shard里的server、以及每一个chunk的基本信息。其中主要是chunk的信息,每个config server中都有一份所有chunk信息的完全拷贝。使用两阶段提交协议来保证配置信息在config server间的一致。mongos:可以认为是一个“数据库路由器”,用以协调集群的各个部分,使它们看起来像一个系统。mongos没有固定的状态,可以在 server需要的时候运行。mongos启动后会从config server里取出元信息,然后接收客户请求,把请求路由到合适的server,得到结果后送回客户。一个系统可以有多个mongos例程,每个例程都需要内存来存储元信息。例程间不需协同工作,每个mongos只需要协同shard servers和config servers工作即可。当然shard servers间也会彼此对话,也会同config servers对话。 11.2sharding的配置和管理 mongod的启动选项中也包含了与sharding相关的参数,如--shardsvr(声明这是一个shard db),--configsvr(声明这是一个config db)。mongos的启动选项--configdb指定config server的位置。下面的链接地址是一个简单的sharding配置例子:http://www.mongodb.org/display/DOCS/A+Sample+Configuration+Session。 像安全和认证一样,如果要sharding,先要允许一个数据库sharding,然后要指定数据库里集合的分片方式,这些都有相应的命令可以完成。 12Java API简介 要使用Java操作MongoDB,在官网上下载jar包,目前最新的版本是:mongo-2.0.jar。首先介绍一下比较常用的几个类: Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等; DB:对应一个数据库,可以用来建立集合等操作; DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等; DBObject接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,因为是key-value的数据结构,所以用起来其实和HashMap是基本一致的; DBCursor:用来遍历取得的数据,实现了Iterable和Iterator。 下面以一段简单的例子说明: 13MongoDB实例分析 下面通过一个实例说明如何用MongoDB作为数据库。该实例中有一个user实体,包含一个name属性,每个user对应一到多个图片image。按照关系型数据库设计,可以设计一个user表和一个image表,其中image表中有一个关联到user表的外键。如果将这两个表对应为两个collection,即image对应的collection中的每一个document都有一个key,其value是该image关联的user。但为了体现MongoDB的效率,即MongoDB是schema-free的,而且支持嵌入子文档,因此在实现时,将一个user发布的image作为该user的子文档嵌入其中,这样只需要定义一个collection,即userCollection。如下图所示: 对于图片等文件,可以存储在文件系统中,也可以存储在数据库中。因此下面分两种情况实现。 13.1图片保存在文件系统中 这种情况下,图片实体中需要记录图片的路径uri,因此Image类的定义如下: 因为在MongoDB中,当保存的对象没有设置ID时,mongoDB会默认给该条记录设置一个ID("_id"),因此在类中没有定义id属性(下同)。 因为一个user对应多个image,所以在user实体中需要记录对应的image。如下: 在main函数中实现如下功能:首先定义一个user(假设id为1),其对应3张图片,然后将该user插入userCollection中。然后,通过查询查找到该user(根据id),再发布第4张图片,更新该user,然后打印出其信息。部分代码如下: 程序运行后,在控制台打印出的信息如下: 从该结果容易看出,用户user有两个属性“_id”和“Name”,而且ImageList作为其子文档(数组)嵌入其中,该数组中是3个图片,每个图片仍然是bson格式。 13.2图片保存在数据库中 这种情况下,图片实体只需要存储文件名即可,因此Image2类的定义如下: User2类和上面类似,如下所示: 实现了类MongoTest2,其功能仍然是一个user对应3个图片,存入数据库中后,通过查询得到该user后,再插入第4幅图片,然后打印出信息。同时为了演示文件的查询,对存入MongoDB中的图片进行了查询并打印出其部分元数据信息。部分代码如下所示: 运行程序,控制台打印出的结果如下: 14MongoDB常用API总结 · 类转换 当把一个类对象存到mongoDB后,从mongoDB取出来时使用setObjectClass()将其转换回原来的类。 public class Tweet implements DBObject { /* ... */ } Tweet myTweet = new Tweet(); myTweet.put("user", "bruce"); myTweet.put("message", "fun"); myTweet.put("date", new Date()); collection.insert(myTweet); //转换 collection.setObjectClass(Tweet.class); Tweet myTweet = (Tweet)collection.findOne(); · 默认ID 当保存的对象没有设置ID时,mongoDB会默认给该条记录设置一个ID("_id")。 当然你也可以设置自己指定的ID,如:(在mongoDB中执行用db.users.save({_id:1,name:'bruce'});) BasicDBObject bo = new BasicDBObject(); bo.put('_id', 1); bo.put('name', 'bruce'); collection.insert(bo); · 权限 判断是否有mongoDB的访问权限,有就返回true,否则返回false。 boolean auth = db.authenticate(myUserName, myPassword); · 查看mongoDB数据库列表 Mongo m = new Mongo(); for (String s : m.getDatabaseNames()) { System.out.println(s); } · 查看当前库下所有的表名,等于在mongoDB中执行show tables; Set<String> colls = db.getCollectionNames(); for (String s : colls) { System.out.println(s); } · 查看一个表的索引 List<DBObject> list = coll.getIndexInfo(); for (DBObject o : list) { System.out.println(o); } · 删除一个数据库 Mongo m = new Mongo(); m.dropDatabase("myDatabaseName"); · 建立mongoDB的链接 Mongo m = new Mongo("localhost", 27017); //有多个重载方法,可根据需要选择 DB db = m.getDB("myDatabaseName"); //相当于库名 DBCollection coll = db.getCollection("myUsersTable");//相当于表名 查询数据 · 查询第一条记录 DBObject firstDoc = coll.findOne(); findOne()返回一个记录,而find()返回的是DBCursor游标对象。 · 查询全部数据 DBCursor cur = coll.find(); while(cur.hasNext()) { System.out.println(cur.next()); } · 查询记录数量 coll.find().count(); coll.find(new BasicDBObject("age", 26)).count(); · 条件查询 BasicDBObject condition = new BasicDBObject(); condition.put("name", "bruce"); condition.put("age", 26); coll.find(condition); · 查询部分数据块 DBCursor cursor = coll.find().skip(0).limit(10); while(cursor.hasNext()) { System.out.println(cursor.next()); } · 比较查询(age > 50) BasicDBObject condition = new BasicDBObject(); condition.put("age", new BasicDBObject("$gt", 50)); coll.find(condition); 比较符 "$gt": 大于 "$gte":大于等于 "$lt": 小于 "$lte":小于等于 "$in": 包含 //以下条件查询20<age<=30 condition.put("age", new BasicDBObject("$gt", 20).append("$lte", 30)); 插入数据 · 批量插入 List datas = new ArrayList(); for (int i=0; i < 100; i++) { BasicDBObject bo = new BasicDBObject(); bo.put("name", "bruce"); bo.append("age", i); datas.add(bo); } coll.insert(datas); 又如: DBCollection coll = db.getCollection("testCollection"); for(int i=1; i<=100; i++) {//插入100条记录 User user = new User(); user.setName("user_"+i); user.setPoint(i); coll.insert(user); } · 正则表达式 查询所有名字匹配 /joh?n/i 的记录 Pattern pattern = Pattern.compile("joh?n", CASE_INSENSITIVE); BasicDBObject query = new BasicDBObject("name", pattern); DBCursor cursor = coll.find(query); 15Redis简介 Redis是一个key-value类型的内存数据库,每一个key都与一个value关联,使得Redis与其他key-value数据库不同是因为在Redis中的每一个value都有一个类型(type),目前在Redis中支持5中数据类型:String、List、Set、ZSet和Hash。每一种类型决定了可以赋予其上的操作(这些操作成为命令command)。比如你可以使用LPUSH或RPUSH命令在O(1)时间对一个list添加一个元素,然后你可以使用LRANGE命令得到list中的一部分元素或使用LTRIM对该list进行trim操作。集合set操作也是很灵活的,你可以从set(无序的String的集合)中add或remove元素,还可以进行交集、合集和差集运算。每一个command都是服务端自动的操作。 Redis性能上和memcached一样快但提供了更多的特性。和memcached一样,Redis支持对key设置失效时间,因此当设定的时间过后会被自动删除。 15.1Redis特性 · 速度快 Redis使用标准C编写实现,而且将所有数据加载到内存中,所以速度非常快。官方提供的数据表明,在一个普通的Linux机器上,Redis读写速度分别达到81000/s和110000/s。 · 持久化 由于所有数据保持在内存中(2.0版本开始可以只将部分数据的value放在内存,见“虚拟内存”),所以对数据的更新将异步地保存到磁盘上,Redis提供了一些策略来保存数据,比如根据时间或更新次数。 · 数据结构 可以将Redis看做“数据结构服务器”。目前,Redis支持5种数据结构。 · 自动操作 Redis对不同数据类型的操作是自动的,因此设置或增加key值,从一个集合中增加或删除一个元素都能安全的操作。 · 支持多种语言 Redis支持多种语言,诸如Ruby, Python, Twisted Python, PHP, Erlang, Tcl, Perl, Lua, Java, Scala, Clojure等。对Java的支持,包括两个。一是JDBC-Redis,是使用JDBC连接Redis数据库的驱动。这个项目的目标并不是完全实现JDBC<span class="anchor-container"> <a class="hyperlink" href="https://ishare.iask.com/f/25487209.html" target="_blank">规范</a> <span class="dropdown"><a class="hyperlink" href="https://ishare.iask.com/f/25487209.html" target="_blank">编程规范下载</a><a class="hyperlink" href="https://ishare.iask.com/f/bvk0b7cKG5V.html" target="_blank">gsp规范下载</a><a class="hyperlink" href="https://ishare.iask.com/f/62945790.html" target="_blank">钢格栅规范下载</a><a class="hyperlink" href="https://ishare.iask.com/f/34558243.html" target="_blank">警徽规范下载</a><a class="hyperlink" href="https://ishare.iask.com/f/j9iYzzksE0.html" target="_blank">建设厅规范下载</a></span> </span>,因为Redis不是关系型数据库,但给Java开发人员提供了一个像操作关系数据库一样操作Redis数据库的接口。 另一个是JRedis,是使用Redis作为数据库开发Java程序的开发包,主要提供了对数据结构的操作。 · 主-从复制 Redis支持简单而快速的主-从复制。官方提供了一个数据,Slave在21秒即完成了对Amazon网站10G key set的复制。 · Sharding 很容易将数据分布到多个Redis实例中,但这主要看该语言是否支持。目前支持Sharding功能的语言只有PHP、Ruby和Scala。 16Redis数据类型 官方文档上,将Redis成为一个“数据结构服务器”(data structures server)是有一定道理的。Redis的所有功能就是以其固有的几种数据结构保存,并提供用户操作这几种结构的接口。可以对比在其他语言中那些固有数据类型及其操作。 Redis目前提供四种数据类型:string、list、set和zset(sorted set)。 16.1String类型 String是最简单的类型,一个key对应一个value。Redis String是安全的,String类型的数据最大1G。String类型的值可以被视作integer,从而可以让“INCR”命令族操作,这种情况下,该integer的值限制在64位有符号数。 在list、set和zset中包含的独立的元素类型都是Redis String类型。 在Redis中,String类型由sds.c库定义,它被封装成Redis对象。和Java中的对象一样,Redis对象也是使用“引用”,因此当一个Redis String被多次使用时,Redis会尽量使用同一个String对象而不是多次分配。 从Redis 1.1版开始,String对象可以编码成数字,因此这样可以节省内存空间。 16.2List类型 链表类型,主要功能是push、pop、获取一个范围的所有值等。其中的key可以理解为链表的名字。在Redis中,list就是Redis String的列表,按照插入顺序排序。比如使用LPUSH命令在list头插入一个元素,使用RPUSH命令在list的尾插入一个元素。当这两个命令之一作用于一个空的key时,一个新的list就创建出来了。比如: 最终在mylist中存储的元素为:”b”,”a”,”c”。 List的最大长度是2^32-1个元素。 16.3Set</div> </div> <!-- 正文底部文案 --> <div class="file-content-bottom mt20"> 本文档为【NoSQL数据库-MongoDB和Redis】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。 <br> 该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。<br> [版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。<br> 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。<br> 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。 </div> <!-- 下载 --> <div class="download-area mt20"> <div class="down-info"> <!-- VIP专享资料展示xx特权,付费资料展示¥xx,免费资料展示免费。 --> 下载需要: 免费 已有0 人下载 </div> <div class="download-groupbtns"> <a href="javascript:;">立即下载</a> </div> </div> <!-- 你可能还喜欢 --> <div class="youlike-area mt20"> <h3>你可能还喜欢</h3> <ul class="youlike-item"> <li> <a href="https://ishare.iask.com/f/t52s4MWD25N.html">实验小学三年级语文全能阅读《石头书》附答案</a> </li> <li> <a href="https://ishare.iask.com/f/wEM27eiZI2.html">民航职业道德</a> </li> <li> <a href="https://ishare.iask.com/f/35jRJ0VhI4x.html">意大利圆体字帖</a> </li> <li> <a href="https://ishare.iask.com/f/387Sl2moOj.html">部编版小学二年级语文上册句子排列专项训练【含答案】</a> </li> <li> <a href="https://ishare.iask.com/f/5f7Q4pnlyit.html">钢筋安装检验批质量验收记录GB50204-2015新</a> </li> <li> <a href="https://ishare.iask.com/f/5hxUH7hdWs2.html">《泰康人寿保险股份有限公司电话销售人员手续费与职级管理办法》</a> </li> <li> <a href="https://ishare.iask.com/f/et7Lh3jDiN.html">中华文化英语演讲稿</a> </li> <li> <a href="https://ishare.iask.com/f/buhdUGJU7Pz.html">2019年四年级书信-写给诸葛亮先生的一封信</a> </li> <li> <a href="https://ishare.iask.com/f/iIhwgSYNHd.html">综合养生粉-营养保健早餐</a> </li> <li> <a href="https://ishare.iask.com/f/iQ70fukIKn.html">感谢领导的指点的词语</a> </li> <li> <a href="https://ishare.iask.com/f/iZKclvQg83.html">动量矩定理及其守恒定律在体育动作中的应用 -毕业论文</a> </li> <li> <a href="https://ishare.iask.com/f/iuMRV2baeP.html">《化工制图与CAD基础》复习题给海洋系</a> </li> <li> <a href="https://ishare.iask.com/f/6swjjnEfFm7.html">七年级下文言文对比阅读</a> </li> <li> <a href="https://ishare.iask.com/f/7f81IQ8RZv.html">厨房采购表格</a> </li> <li> <a href="https://ishare.iask.com/f/OUjSNQYODj.html">林则徐,我想对您说(1500字作文)</a> </li> <li> <a href="https://ishare.iask.com/f/1J72YzVtI0t.html">冀教版四年级英语知识点总结</a> </li> <li> <a href="https://m.ishare.iask.com/f/evLFCWvtdy.html">酒店道歉信(15篇)</a> </li> <li> <a href="https://m.ishare.iask.com/f/evLFCWvtdy.html">酒店道歉信(15篇)</a> </li> <li> <a href="https://m.ishare.iask.com/f/evLFCWvtdy.html">酒店道歉信(15篇)</a> </li> <li> <a href="https://m.ishare.iask.com/f/evLFCWvtdy.html">酒店道歉信(15篇)</a> </li> </ul> </div> <!-- 推荐 --> <div class="recmond-area mt20"> <div class="recmend-tab"> <div class="tab-item" val="new">最新资料</div> <div class="tab-item current" val="hot">资料动态</div> <div class="tab-item" val="topic">专题动态</div> </div> <div class="recmend-item"> <div class="switch_content_wrap"> <ul> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/auWJnaSzrI8.html" target="_blank">浙江高中数学教材目录</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/avumga7MK5g.html" target="_blank">明朝憨山老人梦游集 明释 憨山憨山老人梦游集 明释 憨山 卷35</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1ejjFyZRmUdA.html" target="_blank">项目质量管理措施方案</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/iSLpyGkH1p.html" target="_blank">黄梅戏故乡-安徽潜山[精品]</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/nENNjLdZz.html" target="_blank">六灾一渗透一暴恐安全教育教案</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/5so7nqBnIyl.html" target="_blank">从范蠡卖马看战略联盟的商业模式</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/aL5fSiJY1P.html" target="_blank">CAD动态块详解及实例</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/auY7ESAxn6E.html" target="_blank">水中筑岛施工方案</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1WiPsdOEKM7.html" target="_blank">新湘教版五年级上册科学全册教案设计(2021年秋) (2)</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1DJk0Fe6EvR.html" target="_blank">交通安全知识培训ppt课件</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1H2h9Cocwtdk.html" target="_blank">2010年版《中国药典》药用辅料部分新增品种和修订品种倍他环糊精</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/6tXX0QPYPG6.html" target="_blank">工地实习的自我鉴定(通用16篇)</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/13hx7FIZulZ9.html" target="_blank">计算机控制系统课后习题参考答案刘士荣版—</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1ewrOGJa6taO.html" target="_blank">手抄报比赛活动总结</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/auWJnaSzrI8.html" target="_blank">浙江高中数学教材目录</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/avumga7MK5g.html" target="_blank">明朝憨山老人梦游集 明释 憨山憨山老人梦游集 明释 憨山 卷35</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1ejjFyZRmUdA.html" target="_blank">项目质量管理措施方案</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/iSLpyGkH1p.html" target="_blank">黄梅戏故乡-安徽潜山[精品]</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/nENNjLdZz.html" target="_blank">六灾一渗透一暴恐安全教育教案</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/5so7nqBnIyl.html" target="_blank">从范蠡卖马看战略联盟的商业模式</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/aL5fSiJY1P.html" target="_blank">CAD动态块详解及实例</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/auY7ESAxn6E.html" target="_blank">水中筑岛施工方案</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1WiPsdOEKM7.html" target="_blank">新湘教版五年级上册科学全册教案设计(2021年秋) (2)</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1DJk0Fe6EvR.html" target="_blank">交通安全知识培训ppt课件</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1H2h9Cocwtdk.html" target="_blank">2010年版《中国药典》药用辅料部分新增品种和修订品种倍他环糊精</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/6tXX0QPYPG6.html" target="_blank">工地实习的自我鉴定(通用16篇)</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/13hx7FIZulZ9.html" target="_blank">计算机控制系统课后习题参考答案刘士荣版—</a> </li> <li> <!-- <a target="_blank" href="https://ishare.iask.sina.com.cn/f/.html"></a> --> <a href="https://ishare.iask.com/f/1ewrOGJa6taO.html" target="_blank">手抄报比赛活动总结</a> </li> </ul> </div> <div class="switch_content_wrap current"> <ul> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/5hMjnh1SahY.html" target="_blank">5G时代对提升高职图书馆电子资源利用率的措施探讨</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/32eijg28O7.html" target="_blank">信访事项代理授权委托书</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/33725257.html" target="_blank">剑桥大学数学入学试卷2011-ON-11</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/33wUtOWglwY.html" target="_blank">1500方沼气制氢技术方案</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/3WsyuEnKqL.html" target="_blank">我的语文老师作文450字_1</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/5RPKvPMktn5.html" target="_blank">高职高考数学试卷</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/1H45s3zIHRt6.html" target="_blank">六爻卦象解密(王虎应)八卦卦象之离宫八卦(修订)</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/1eRyyjlZRwp.html" target="_blank">关于失业保险基金自查报告三篇</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/1gvuzWAeZP.html" target="_blank">七上 古代诗歌四首</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/23gOvqcOP9c.html" target="_blank">(完整版)CAD2014培训基础课件</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/2RU8IAWKbQ5.html" target="_blank">(整理)夏热冬冷地区居住建筑节能设计标准.</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/2YrssaQUnMC.html" target="_blank">2022年江西省鹰潭市数学八上期末调研模拟试题含解析</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/iulAlr1EPT.html" target="_blank">净值调查</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/lv6SySNs3V.html" target="_blank">英文航海日志 (18页)</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/ovkr8qm9jp.html" target="_blank">经尿道输尿管镜技术硬性输尿管镜</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/bvUTMGDsdmD.html" target="_blank">我愿意作文450字</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/d6pxi9f70P9c.html" target="_blank">关键工序确认记录表(1)</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://ishare.iask.com/f/2ZeKIie2mtW.html" target="_blank">舞蹈课教案(中国舞蹈考级3)</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://ishare.iask.com/f/30LBwUDpvZp.html" target="_blank">财政预算总会计制度(财库[2015]192号)</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://ishare.iask.com/f/3172IVejdOW.html" target="_blank">自然)科学竞赛海宁赛区获奖公示</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://ishare.iask.com/f/2YLxQVQL8f9.html" target="_blank">最有效的美白祛斑方法:菲丝丽妮引领中药祛斑新时尚 (2)</a> </li> </ul> </div> <div class="switch_content_wrap"> <ul> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/7GTSawZ9VpB.html" target="_blank">智能化工程施工开工报告表</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/8CTF5bZNEH.html" target="_blank">水利安全员考试题库及答案</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/DjoGseIuBd.html" target="_blank">智慧工厂安防监控解决方案</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/5m6eUxEHYsN.html" target="_blank">拖延症-舒珊</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/644tpTrWSv.html" target="_blank">校园安全教育</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/6Dihj5cnVx.html" target="_blank">线切割工作计划进度表</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/6uetxbWgTTl.html" target="_blank">人教版小学数学六年级上册《圆的面积》教案</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/7EwqGGtFtbv.html" target="_blank">(二)学籍照片说明</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/8uYQR1G1NL.html" target="_blank">部编版小学语文四年级上册第一单元教材分析</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/31Uh0z7OzHP.html" target="_blank">盐道街小学体育课教案</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/31yl779y5WN.html" target="_blank">netdom常用命令</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/50ocBmlzcdk.html" target="_blank">医药企业的人才战略转型思考(1)</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/dW2wyQ7YRv.html" target="_blank">务川大贰玩法简介</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/ea5rve4KEn.html" target="_blank">普通高中音乐课程标准(2017年版2020年修订)-音乐学科核心素养水平划分</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/7GTSawZ9VpB.html" target="_blank">智能化工程施工开工报告表</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/8CTF5bZNEH.html" target="_blank">水利安全员考试题库及答案</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/DjoGseIuBd.html" target="_blank">智慧工厂安防监控解决方案</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/5m6eUxEHYsN.html" target="_blank">拖延症-舒珊</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/644tpTrWSv.html" target="_blank">校园安全教育</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/6Dihj5cnVx.html" target="_blank">线切割工作计划进度表</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/6uetxbWgTTl.html" target="_blank">人教版小学数学六年级上册《圆的面积》教案</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/7EwqGGtFtbv.html" target="_blank">(二)学籍照片说明</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/8uYQR1G1NL.html" target="_blank">部编版小学语文四年级上册第一单元教材分析</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/31Uh0z7OzHP.html" target="_blank">盐道街小学体育课教案</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/31yl779y5WN.html" target="_blank">netdom常用命令</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/50ocBmlzcdk.html" target="_blank">医药企业的人才战略转型思考(1)</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/dW2wyQ7YRv.html" target="_blank">务川大贰玩法简介</a> </li> <li> <!-- <a target="_blank" href=""></a> --> <a href="https://m.ishare.iask.com/f/ea5rve4KEn.html" target="_blank">普通高中音乐课程标准(2017年版2020年修订)-音乐学科核心素养水平划分</a> </li> </ul> </div> </div> </div> </div> <div class="rigthAside fl"> <!-- 作者信息 --> <div class="editer-con"> <div class="avatar-frame"> <img src="https://pic.iask.com.cn/1mwmgl6hn3.png" alt=""> </div> <div class="editer-info"> <div class="nickname">is_688551</div> <div class="editer-brief"> 暂无简介~ </div> </div> </div> <!-- 文章信息 --> <div class="paper-info"> <div class="info-item">格式:doc</div> <div class="info-item">大小:512KB</div> <div class="info-item">软件:Word</div> <div class="info-item">页数:37</div> <div class="info-item">分类:互联网</div> <div class="info-item">上传时间:2013-04-07</div> <div class="info-item">浏览量:21</div> </div> <!-- 相关资料 --> <div class="related-file"> <div class="column-name">相关资料</div> <ul> <li class="file-item"> <a href="https://ishare.iask.com/f/iy43WtqAeo.html">刘欢歌曲的特点</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/tgm0K0YUPbd.html">物理实验评分细则</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/iXdSJNfF5k.html">农民工业余学校9、农民工业余学校师资人员配备表</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/l9oZKFHGqr.html">OPI考试介绍</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/sVO2CC5uCWx.html">玻璃钢管道施工方案</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/tGqNHQJtUoR.html">第十章红外吸收光谱分析</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/uEMgEuWLTG.html">2023年高等学校英语应用能力考试A级含答案详解</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/uWCMTsw8fMK.html">在网上选课、学习、挂课的操作流程(1)</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/uepzr4Q5PG.html">2023届浙江省临海市杜桥实验中学初三数学试题5月8日第6周测试题含解析</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/1uMUvqTmLZX.html">《电子招标投标系统技术规范》</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/2k0vF0aL86b.html">五年级科学制作一个一分钟计时器</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/33fD65a2sRM.html">宝来故障码一览表</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/idx2xlJ7Yf.html">脚丫优秀作文600字</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/13v3WYWuLnXg.html">施工企业质量手册</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/1X4PgrmpkHl.html">隧道超挖原因分析及预防措施</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/2xzGEMBLC3.html">固体废物的收集与运输ppt课件</a> </li> <li class="file-item"> <a href="https://m.ishare.iask.com/node/s/vKWNuTLAYf.html">合同条款澄清协议模板</a> </li> <li class="file-item"> <a href="https://m.ishare.iask.com/f/j7b9pnQTlB.html">罗麒美容沙龙成立于1995年5月18日,在孔祥平总经理的精心</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/14478212.html">解放军报20110302</a> </li> <li class="file-item"> <a href="https://ishare.iask.com/f/311SY1Fj57t.html">酒店装修采购物品清单</a> </li> </ul> </div> <!-- 热门搜索 --> <div class="hot-search"> <div class="search-top"> <span class="column-name">热点搜索</span> <!-- <span class="swtich-bar">换一换</span> --> </div> <div class="search-list"> <a href="https://m.ishare.iask.com/f/5llbFTIp0a8.html">(2023版)机械行业企业安全生产标准化评定标准设施、设备要求(1个单元)</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/7CPPlEIjjOB.html">第九章 社会工作督导9 PPT课件</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/CPzCr7ToH.html">洪水防护安全知识教育课件</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/Rkm3bguimlx.html">超星尔雅网课答案国际金融</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/RpgtH1e9LsB.html">工程项目部作息时间表</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/aeeFueS36Z.html">世界旅游景点(欧洲篇)-塞尔维亚</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/d5FFyV0CNcAa.html">欧洲法国意大利签证行程单</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/dFUedRlbwT.html">评课及指导意见</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/j7c3bR14Og.html">鹅鸭肥肝欧盟和日本的要求标准及法国百乐迷(PALMI_FRANCE)公司对鹅鸭肥肝的年需求总量</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/tqU59TllWyW.html">疏肝健脾和胃方加减治疗慢性胃炎的临床疗效观察</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/8vk3IXO4Kh.html">钢管桩施工质量监理细则</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/Fr79ckTfv.html">《剑桥幼儿英语》1级A(南大社)教师用书</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/31NInNwGDrV.html">焊接冷裂纹</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/34742331.html">2008-2009普通化学原理期末试卷及答案</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/5llbFTIp0a8.html">(2023版)机械行业企业安全生产标准化评定标准设施、设备要求(1个单元)</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/7CPPlEIjjOB.html">第九章 社会工作督导9 PPT课件</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/CPzCr7ToH.html">洪水防护安全知识教育课件</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/Rkm3bguimlx.html">超星尔雅网课答案国际金融</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/RpgtH1e9LsB.html">工程项目部作息时间表</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/aeeFueS36Z.html">世界旅游景点(欧洲篇)-塞尔维亚</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/d5FFyV0CNcAa.html">欧洲法国意大利签证行程单</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/dFUedRlbwT.html">评课及指导意见</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/j7c3bR14Og.html">鹅鸭肥肝欧盟和日本的要求标准及法国百乐迷(PALMI_FRANCE)公司对鹅鸭肥肝的年需求总量</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/tqU59TllWyW.html">疏肝健脾和胃方加减治疗慢性胃炎的临床疗效观察</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/8vk3IXO4Kh.html">钢管桩施工质量监理细则</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/Fr79ckTfv.html">《剑桥幼儿英语》1级A(南大社)教师用书</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/31NInNwGDrV.html">焊接冷裂纹</a> <!-- <a href=""></a> --> <a href="https://m.ishare.iask.com/f/34742331.html">2008-2009普通化学原理期末试卷及答案</a> <!-- <a href=""></a> --> </div> </div> </div> </div> <!-- 底部声明 --> <div class="website-footer"> <div class="footer-content"> <div class="footer-link"> <div class="earth-con"> <div class="file-groups earth-con-item"> <span>资料大全</span> <a href="/index/f-a.html " target="_blank">A</a> <a href="/index/f-b.html " target="_blank">B</a> <a href="/index/f-c.html " target="_blank">C</a> <a href="/index/f-d.html " target="_blank">D</a> <a href="/index/f-e.html " target="_blank">E</a> <a href="/index/f-f.html " target="_blank">F</a> <a href="/index/f-g.html " target="_blank">G</a> <a href="/index/f-h.html " target="_blank">H</a> <a href="/index/f-i.html " target="_blank">I</a> <a href="/index/f-j.html " target="_blank">J</a> <a href="/index/f-k.html " target="_blank">K</a> <a href="/index/f-l.html " target="_blank">L</a> <a href="/index/f-m.html " target="_blank">M</a> <a href="/index/f-n.html " target="_blank">N</a> <a href="/index/f-o.html " target="_blank">O</a> <a href="/index/f-p.html " target="_blank">P</a> <a href="/index/f-q.html " target="_blank">Q</a> <a href="/index/f-r.html " target="_blank">R</a> <a href="/index/f-s.html " target="_blank">S</a> <a href="/index/f-t.html " target="_blank">T</a> <a href="/index/f-u.html " target="_blank">U</a> <a href="/index/f-v.html " target="_blank">V</a> <a href="/index/f-w.html " target="_blank">W</a> <a href="/index/f-x.html " target="_blank">X</a> <a href="/index/f-y.html " target="_blank">Y</a> <a href="/index/f-z.html " target="_blank">Z</a> <a href="/index/f-09.html " target="_blank">0-9</a> </div> <div class="topic-groups earth-con-item"> <span>专题大全</span> <a href="/index/t-a.html " target="_blank">A</a> <a href="/index/t-b.html " target="_blank">B</a> <a href="/index/t-c.html " target="_blank">C</a> <a href="/index/t-d.html " target="_blank">D</a> <a href="/index/t-e.html " target="_blank">E</a> <a href="/index/t-f.html " target="_blank">F</a> <a href="/index/t-g.html " target="_blank">G</a> <a href="/index/t-h.html " target="_blank">H</a> <a href="/index/t-i.html " target="_blank">I</a> <a href="/index/t-j.html " target="_blank">J</a> <a href="/index/t-k.html " target="_blank">K</a> <a href="/index/t-l.html " target="_blank">L</a> <a href="/index/t-m.html " target="_blank">M</a> <a href="/index/t-n.html " target="_blank">N</a> <a href="/index/t-o.html " target="_blank">O</a> <a href="/index/t-p.html " target="_blank">P</a> <a href="/index/t-q.html " target="_blank">Q</a> <a href="/index/t-r.html " target="_blank">R</a> <a href="/index/t-s.html " target="_blank">S</a> <a href="/index/t-t.html " target="_blank">T</a> <a href="/index/t-u.html " target="_blank">U</a> <a href="/index/t-v.html " target="_blank">V</a> <a href="/index/t-w.html " target="_blank">W</a> <a href="/index/t-x.html " target="_blank">X</a> <a href="/index/t-y.html " target="_blank">Y</a> <a href="/index/t-z.html " target="_blank">Z</a> <a href="/index/t-09.html " target="_blank">0-9</a> </div> </div> <div class="copy-link"> <a class="website-home-link" href="/" target="_blank"> <img class="website-icon" src="//static3.iask.cn/v202404111630/images/footer_logo.png"> </a> <p class="footer-nav"> <a href="http://help.iask.com/helpCenter/5e15a72a474e3171f58ae2a6.html" rel="nofollow" target="_blank" class="footer-nav-link jsReplaceNavLink">网站声明 <span>|<span></a> <a href="http://help.iask.com/helpCenter/5d11e55e0cf2d66b81a5513f.html" rel="nofollow" target="_blank" class="footer-nav-link jsReplaceNavLink">侵权处理 <span>|<span></a> <a href="/node/feedback/feedback.html" rel="nofollow" target="_blank" class="footer-nav-link">投诉反馈 <span>|<span></a> <a href="http://help.iask.com/helpCenter/ishare.html" rel="nofollow" target="_blank" class="footer-nav-link">帮助中心 <span>|<span></a> <a href="/index/f-a.html" target="_blank" class="footer-nav-link">网站地图 <span>|<span></a> <a href="https://office.iask.com/" target="_blank" class="footer-nav-link">爱问办公</a> </p> <a class="copy-txt" href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank"><span class="beian">京ICP证000007-6</span> 爱问文库-Copyright © 2024 版权所有</a> <p class="web-copyright jsWebCopyright"> <a target="_blank" href="https://beian.mps.gov.cn/#/query/webSearch?code=33021202002483" rel="noreferrer"><img class="copyright-mark" src="//static3.iask.cn/v202404111630/images/common/ic_mark.png" alt="">浙公网安备 33021202002483</a> </p> </div> </div> <div class="footer-kefu"> <div class="footer-border"></div> <p>客服热线:0755-26904047</p> <p>工作日:9:00-18:00</p> <span class="btn-contact jsContactMeiqia" data-pageid="footer">在线客服</span> </div> <ul class="footer-qrcode-items"> <li class="qrcode-item"> <div class="qrcode-item-img"> <img src="//static3.iask.cn/v202404111630/images/ishare_gongxiang.jpg"> </div> <p class="qrcode-item-desc">关注爱问文库服务号</p> </li> </ul> </div> </div> <script> window.pageConfig = { page: {} }; seajs.use(["dist/spider/init.js"]); </script> <script type="text/javascript"> document.write(unescape( "%3Cspan id='cnzz_stat_icon_1279079195'%3E%3C/span%3E%3Cscript src='https://v1.cnzz.com/stat.php%3Fid%3D1279079195' type=" + "'text/javascript'%3E%3C/script%3E" )); </script> </body> </html>