技术标签: mongodb linux 安装包
MongoDB是开源文档数据库,提供共性能、高可用、自动扩展等。MongoDB中记录是文档,其是字段和值组成的对结构。MongoDB文档类似JSON对象,字段的值可以包含其它文档、数组、文档的数组。记录组织成collection,相当于表。参考下图:
使用文档的优点是:
文档对应很多编程语言的内生数据对象
内嵌文档和数组减少了join的开销
动态schema支持顺畅多态
关键功能:
高性能:
mongodb提供高性能数据持久。特别是:
支持内嵌数据模型减少了数据库系统的I/O
索引支持快速查询且内嵌文档和数组可以包含键
高可用:
mongodb提供高可用的是replica sets
自动失败切换
数据冗余
replica set是一组mongodb服务器,它们维护这同一个数据集,提供冗余,增加数据可用性。
自动水平扩展:
水平扩展是mongodb的内核功能。
在集群上自动共享分布式数据
replica sets能为低延迟,高吞吐量的应用提供最终一致性读。
安装:
0
环境
[[email protected] ~]# uname -a
Linux host2 2.6.32-504.3.3.el6.x86_64 #1 SMP Wed Dec 17 01:55:02 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[[email protected] ~]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
2
[[email protected] mongodb]# tar -zxvf mongodb-linux-x86_64-2.6.7.tgz
mongodb-linux-x86_64-2.6.7/README
mongodb-linux-x86_64-2.6.7/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-2.6.7/GNU-AGPL-3.0
mongodb-linux-x86_64-2.6.7/bin/mongodump
mongodb-linux-x86_64-2.6.7/bin/mongorestore
mongodb-linux-x86_64-2.6.7/bin/mongoexport
mongodb-linux-x86_64-2.6.7/bin/mongoimport
mongodb-linux-x86_64-2.6.7/bin/mongostat
mongodb-linux-x86_64-2.6.7/bin/mongotop
mongodb-linux-x86_64-2.6.7/bin/mongooplog
mongodb-linux-x86_64-2.6.7/bin/mongofiles
mongodb-linux-x86_64-2.6.7/bin/bsondump
mongodb-linux-x86_64-2.6.7/bin/mongoperf
mongodb-linux-x86_64-2.6.7/bin/mongod
mongodb-linux-x86_64-2.6.7/bin/mongos
mongodb-linux-x86_64-2.6.7/bin/mongo
[[email protected] mongodb]#
3
拷贝的规划的文件夹
[ro[email protected] mongodb]# mv mongodb-linux-x86_64-2.6.7 /opt/mongodb
4
配置环境变量
[[email protected] ~]# vi .bash_profile
PATH=$PATH:/opt/mongodb/bin
5
数据所在文件夹
[[email protected] mongodb]# mkdir dbdata
6
使用户 mongod可以读写数据所在文件夹
[[email protected] mongodb]# useradd -r mongod
[[email protected] mongodb]# chown mongod:mongod dbdata/
7
启动
[[email protected] mongodb]# mongod --dbpath dbdata
2015-02-13T17:56:23.704+0800 [initandlisten] MongoDB starting : pid=2035 port=27017 dbpath=dbdata 64-bit host=linuxidc
2015-02-13T17:56:23.708+0800 [initandlisten] db version v2.6.7
2015-02-13T17:56:23.708+0800 [initandlisten] git version: a7d57ad27c382de82e9cb93bf983a80fd9ac9899
2015-02-13T17:56:23.708+0800 [initandlisten] build info: Linux build7.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2015-02-13T17:56:23.708+0800 [initandlisten] allocator: tcmalloc
2015-02-13T17:56:23.708+0800 [initandlisten] options: { storage: { dbPath: "dbdata" } }
2015-02-13T17:56:23.738+0800 [initandlisten] journal dir=dbdata/journal
2015-02-13T17:56:23.741+0800 [initandlisten] recover : no journal files present, no recovery needed
2015-02-13T17:56:24.520+0800 [initandlisten] preallocateIsFaster=true 13.46
2015-02-13T17:56:25.273+0800 [initandlisten] preallocateIsFaster=true 12.5
2015-02-13T17:56:27.166+0800 [initandlisten] preallocateIsFaster=true 8.76
2015-02-13T17:56:27.166+0800 [initandlisten] preallocateIsFaster check took 3.423 secs
2015-02-13T17:56:27.167+0800 [initandlisten] preallocating a journal file dbdata/journal/prealloc.0
2015-02-13T17:56:30.089+0800 [initandlisten] File Preallocator Progress: 891289600/1073741824 83%
2015-02-13T17:56:31.216+0800 [initandlisten] preallocating a journal file dbdata/journal/prealloc.1
2015-02-13T17:56:34.070+0800 [initandlisten] File Preallocator Progress: 629145600/1073741824 58%
2015-02-13T17:56:35.779+0800 [initandlisten] preallocating a journal file dbdata/journal/prealloc.2
2015-02-13T17:56:38.054+0800 [initandlisten] File Preallocator Progress: 859832320/1073741824 80%
2015-02-13T17:56:39.630+0800 [initandlisten] allocating new ns file dbdata/local.ns, filling with zeroes...
2015-02-13T17:56:39.762+0800 [FileAllocator] allocating new datafile dbdata/local.0, filling with zeroes...
2015-02-13T17:56:39.763+0800 [FileAllocator] creating directory dbdata/_tmp
2015-02-13T17:56:39.797+0800 [FileAllocator] done allocating datafile dbdata/local.0, size: 64MB, took 0.002 secs
2015-02-13T17:56:39.832+0800 [initandlisten] build index on: local.startup_log properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "local.startup_log" }
2015-02-13T17:56:39.855+0800 [initandlisten] added index to empty collection
2015-02-13T17:56:39.894+0800 [initandlisten] command local.$cmd command: create { create: "startup_log", size: 10485760, capped: true } ntoreturn:1 keyUpdates:0 numYields:0 reslen:37 281ms
2015-02-13T17:56:39.897+0800 [initandlisten] waiting for connections on port 27017
8
连接,简单使用
[[email protected] ~]# mongo
MongoDB shell version: 2.6.7
connecting to: test
#查看当前数据库
> db
test
#切到数据库 mydb
> use mydb
switched to db mydb
> db
mydb
#用Javascript创建两个文档
> j = { name : "mongo" }
{ "name" : "mongo" }
> k = { x : 3 }
{ "x" : 3 }
#创建mydb数据库和testdata collection
> db.testdata.insert(j)
WriteResult({ "nInserted" : 1 })
> db.testdata.insert(k);
WriteResult({ "nInserted" : 1 })
> show collections
system.indexes
testdata
> db.testdata.find()
{ "_id" : ObjectId("54ddd717d692cfe0bd20d983"), "name" : "mongo" }
{ "_id" : ObjectId("54ddd728d692cfe0bd20d984"), "x" : 3 }
>
>
> show dbs
admin (empty)
local 0.078GB
mydb 0.078GB
>
> use hahadb
switched to db hahadb
> show dbs
admin (empty)
local 0.078GB
mydb 0.078GB
> db
hahadb
> j = { name : "mongo" }
{ "name" : "mongo" }
> show dbs
admin (empty)
local 0.078GB
mydb 0.078GB
> db.testdata.insert(j)
WriteResult({ "nInserted" : 1 })
> show dbs
admin (empty)
hahadb 0.078GB
local 0.078GB
mydb 0.078GB
>
> use mydb
switched to db mydb
> show collections
system.indexes
testdata
>
> db.testdata.insert(j)
WriteResult({ "nInserted" : 1 })
> db.testdata.find()
{ "_id" : ObjectId("54ddd717d692cfe0bd20d983"), "name" : "mongo" }
{ "_id" : ObjectId("54ddd728d692cfe0bd20d984"), "x" : 3 }
{ "_id" : ObjectId("54ddda64d692cfe0bd20d986"), "name" : "mongo" }
> db.testdata.insert(k)
WriteResult({ "nInserted" : 1 })
>
>
> db.testdata.find()
{ "_id" : ObjectId("54ddd717d692cfe0bd20d983"), "name" : "mongo" }
{ "_id" : ObjectId("54ddd728d692cfe0bd20d984"), "x" : 3 }
{ "_id" : ObjectId("54ddda64d692cfe0bd20d986"), "name" : "mongo" }
{ "_id" : ObjectId("54ddda7dd692cfe0bd20d987"), "x" : 3 }
>
> db.testdata.find({x:3})
{ "_id" : ObjectId("54ddd728d692cfe0bd20d984"), "x" : 3 }
{ "_id" : ObjectId("54ddda7dd692cfe0bd20d987"), "x" : 3 }
>
>
> exit;
[[email protected] ~]#
参考:
docs.mongodb.org/manual/tutorial/install-mongodb-on-linux/
《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htm
MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里
fopen FILE * fopen(const char * path,const char * mode);函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 rb+ 读写打开一个二进制文件,只允许读写数据
前文:Python3 趣味系列题7 ------ Prim算法生成完美迷宫一、A*算法寻找路径的算法有很多,例如BFS算法、Dijkstra算法等。BFS算法可以在较短时间内寻找到从起点到结束点的路径,但不一定是最优的。而Dijkstra算法从起点开始向外围逐渐扩展,直到达到结束点,因此得到的路径一定是最优的,但是耗时较长。A*算法可以看作这2个算法的结合,这主要依赖于A*算法的启发式搜寻策略...
其中分别有三个zip;其中这几个文件夹有不同的文件,需要将这些文件全部解压到指定的同一个目录下;路径下的zip文件中的全部解压到。效果,解压所有文件到目标文件。
在一个养老中心的项目里(真心没想到我们呼叫中心还能给养老中心用上,应用面还挺广,我们的服务被智慧社区调用)出现了乱码,我被解决了这个乱码,一开始我个菜鸟就在工程里乱找,终于找到了页面,还有action和方法,但是就是没解决成,后来和利哥一说,他问了智慧社区的人,我们是被调用的,参数都是他们传过来的,我们解码得和他们怎么编码的配合才行啊,(真应该一开始就来问问利哥,省了好多时间,毕竟利哥多年经验,人
前言很多同学可能对于CAP这个项目想有更一步的了解,包括她的工作原理以及适用的场景,所以博主就准备了一场直播给大家讲解了一下,这个视频是直播的一个录像。由于我这次直播本来是没有打算对外的,所以也是没有怎么准备的,所以在直播的过程中出现了一些讲解不到位或者是意外的情况,还请大家能够谅解~。最后,感谢大家对于CAP的关注和支持。CAPCAP是一个开源项目,是关于分布式系统中的最终一
公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你提升运维技能!说到光模块,相信大家一定不会觉得陌生。随着光通信的高速发展,现在我们工作和生活中很多场景都已经实现了“光进铜退...
w=[0.282 0.146 0.075 0.038 0.019,0.148 0.070 0.015 0.032,0.075 0.028 0.006 0.012,0.020 0.020 0.008 0.004]w =Columns 1 through 60.2820 0.1460 0.0750 0.0380 0.0190 0.1480Columns 7 through 120.0700 0.015...
elasticsearch简介ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文检索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。实验部署1、实验所需组件及环境...
什么是内存泄漏?某个对象不用了,但一直没有被释放掉,导致内存浪费。 反射的性能很低,所以应该尽量使用缓存(用变量保存得到的参数) 字节码比较不能用(equals)最好是用==比较,因为字节码只有同一份,所以用==比较 什么是hibernate的“懒加载”?在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减
本文转自:http://www.usidcbbs.com/simple/?t5247.html查看完整版本: [-- 用VC进行64位编程 --]美国主机支持论坛 -> 开发技术 -> 用VC进行64位编程 [打印本页]登录 -> 注册 -> 回复主题 -> 发表主题
Hadoop Archives Guide(hdfs文件归档介绍和例子)一、概括介绍:1)、简介英文:Hadoop archives are special format archives. A Hadoop archive maps to a file system directory. A Hadoop archive always has a *.har extension. A...
目录Buffer缓冲区重要参数相关操作创建Buffer重置和清空缓冲区读写缓冲区标志缓冲区复制缓冲区只读缓冲区文件映射内存Scattering和GatheringMapperByteBuffer性能对比直接内存访问性能创建销毁性能与流式的IO不同,NIO是基于块的,以块为单位处理数据。NIO中最为重要的两个组件,通道(channel)和缓冲(buffer)。缓冲是一块连续的内存块,是NIO读写数据的中转地。通道表示缓冲数据的源头或目的地,用于向缓冲读取或者写入数据,是访问缓冲的接口。Buffer缓冲区