mongodb固定集合(Capped Collection)和大文件管理(GridFS)
2013-05-29 22:25
836 查看
Capped Collection 固定集合(Capped Collection)是性能出色的有着固定大小的集合,以LRU(Least Recently Used最近最少使用)规则和插入顺序进行age-out(老化移出)处理,自动维护集合中对象的插入顺序,在创建时要预先制定大小,如果空间用完,新添加的对象将会取代集合中最旧的对象,永远保持最新的数据。
转换集合 把普通的集合转换成固定集合需要使用convertTocapped命令
分享到: QQ空间 新浪微博 腾讯微博 人人网 更多
查看集合的状态信息 db.cot1.stats(); //查看集合cot1的状态信息 删掉指定集合 db.collection1.drop(); //删除collection1集合 mongoDB中集合创建默认是隐式创建的,可以使用createCollection显示创建集合 db.createCollection("collect"); 删掉指定数据库 db.dropDatabase(); //删除当前数据库 查询所有数据库 show dbs //查询所有数据库 显示当前库中所有集合 show tables; 或者 show collections;固定集合的功能特点 可以插入及更新,但更新不能超出collection的大小,否则更新失败,不允许删除,但是可以调用drop()删除集合中的所有行,但是drop后需要显式地重建集合.在32位机子上一个cappped collection的最大值约为482.5M,64位上只受系统文件大小的限制. 固定集合属性及用法: 属性1:对固定集合进行插入速度极快 属性2:按照插入顺序的查询输出速度极快 属性3:能够在插入最新数据时,淘汰最早的数据 用法1:储存日志信息 用法2:缓存一些少量的文档 创建固定集合 不像普通集合,固定集合需要显示的创建使用createCollection命令 eg. db.createCollection("collect",{capped:true, size:10000}); 创建一个集合为collect的固定集合,大小为10000字节,还可以指定文档个数,加上Max:100属性. 注意:指定文档上限,必须指定大小,文档限制是在容量没满时进行淘汰,要是满了,就根据容量限制来进行淘汰.
可以再创建capped collection时指定collection中能够存放的最大文档数目,但这是要指定size,因为总是先检查size后检查maxRowNumber.可以使用validate()查看一个collection已经使用了多少空间,从而决定size设为多大. > db.createCollection("mycappedcoll",{capped:true,size:10000,max:100}) { "ok" : 1 } > db.mycappedcoll.validate(); 创建collection时还有一个参数”autoIndexID”,值可以为”true”和”false”,决定是否需要在”_id”上创建索引,例如 > db.createCollection("mycappedcoll",{capped:true,size:10000,max:100,autoIndexId:false}) 默认情况下对一般的collection是创建索引的,但不会对capped collection创建.capped collection不能被Shard,这也是有道理的,一个经常被刷新且大小固定的表,做Sharding(分片)也没太大意义.
转换集合 把普通的集合转换成固定集合需要使用convertTocapped命令
db.runCommand( { convertTocapped:"test",size:10000 } );把test普遍集合转换为固定集合,大小为10000字节. 自然排序 固定集合文档按照插入顺序储存的,默认情况下查询就是按照插入顺序返回的,也可以使用$natural调整返回顺序.
db.mycappedcolt.find().sort( {"$natural":1} );参数1表示默认顺序,-1则相反. 判断集合是否为固定集合
db.colt.isCapped();查看集合状态信息
db.colt.stats();GridFS GridFS是一种在MongoDB中存储大二进制文件的机制,使用GridFS原因有以下几种: 储存巨大的文件,比如视频、高清图片等.利用GridFS可以简化需求. GridFS会直接利用已经建立的复制或分片机制,故障恢复和扩展都很容易. GridFS可以避免用户上传内容的文件系统出现问题. GridFS不产生磁盘碎片 GridFS存储数据 GrdiFS使用两个表来存储数据: files 包含元数据对象 chunks 包含其他一些相关信息的二进制块. 为了使多个GridFS命名为一个单一的数据库,文件和块都有一个前缀,默认情况下,前缀是fs,所以任何默认的GridFS存储将包括命名空间fs.files和fs.chunks。 各种第三方语言可以更改其前缀 使用GridFS mongofiles mongofiles是从命令行操作GridFS的一种工具 四个命令:put(存储)、get(取得/下载)、list(列表)、delete(删除)
eg. ./mongofiles put testfile.zip ./mongofiles list ./mongofiles get testfile.zip ./mongofiles delete testfile.zip 验证md5 mg5sum testfiles.zip 此时登录mongo,show tables可以看到新增2个文件fs.files和fs.chunks. 查看fs.files中的内容 db.fs.files.find(); fs.files 中存储的是一些基础的元数据信息. db.fs.chunks.find(); fs.chunks 中存储的是一些实际的内容数据信息.转载请注明出处:[http://www.cnblogs.com/dennisit/archive/2013/01/28/2880657.html]
分享到: QQ空间 新浪微博 腾讯微博 人人网 更多
相关文章推荐
- mongodb固定集合(Capped Collection)和大文件管理(GridFS)
- MongoDB:5-MongoDB的固定集合(capped collection)
- 关于MongoDB 固定集合(capped collection)的知识梳理
- MongoDB 学习笔记(五):固定集合、GridFS文件系统与服务器端脚本
- mongoDB应用篇——固定集合和GridFS文件
- MongoDB 学习笔记(五):固定集合、GridFS文件系统与服务器端脚本
- MongoDB学习笔记(二)--Capped集合 && GridFS存储文件
- mongo 固定集合,大文件存储,简单优化 + 三招解决MongoDB的磁盘IO问题
- MongoDB实战(3)固定集合与GridFS
- 7、固定集合 (capped collection)
- mongodb Capped Collections 固定集合
- 【MongoDB】Capped固定集合
- mongodb 固定集合和GridFS
- mongoDB 定长集合(capped collection)
- MongoDB-GRIDFS大文件系统
- 【MongoDB学习笔记26】MongoDB的固定集合
- 优化文件下载性能,缓存MongoDB GRIDFS文件(实践讨论稿)
- MongoDB固定集合的使用(基于Ruby)-记录用户日志行为
- Mongodb GridFS中对文件的上传、下载、删除
- nginx + mongodb gridfs 实现web浏览文件