10gen 是一套云计算平台,可以为web应用提供可以扩展的高性能的数据存储解决方案。10gen的开源项目是mongoDB,主要功能是解决website的操作性数据存储,session对象的存储,数据缓存,高效率的实时计数(比如统计pv,uv),并支持ruby,python,java,c++,php等众多的页面语言。
MongoDB主要特征是存储数据非常方便,不在是传统的object-relational mapping的模式,高性能,可以存储大对象数据,比如视频等,可以自动复制和failover。
技术需要实践,让我们一起来从实践中体会mongoDB的众多优越的特性。
首先建立一台虚拟机rhel 5.2.
下载符合版本的软件,
http://www.mongodb.org/display/DOCS/Downloads
curl -O http://downloads.mongodb.org/linux/mongodb-linux-i686-latest.tgz
安装非常简单,解压好就可以使用,非常方便。
tar xvzf mongodb-linux-i686-latest.tgz
解压后的目录结构如下:
|-- bin| |-- mongo (the database shell)| |-- mongod (the database)| |-- mongodump (dump/export utility)| `-- mongorestore (restore/import utility)|-- include (c++ driver include files)| `-- mongo| |-- client| |-- db| |-- grid| `-- util|-- lib|-- lib64
在启动之前,先建立数据库存放的目录 。
mkdir –p /data/db
接着后台启动mongoDB
bin/mongod run &
[1] 5673
[root@rac01 mongodb-linux-i686-2009-06-14]# Mon Jun 15 20:27:32 Mongo DB : starting : pid = 5673 port = 27017 dbpath = /data/db/ master = 0 slave = 0
Mon Jun 15 20:27:32 db version v0.9.4+, pdfile version 4.4
Mon Jun 15 20:27:32 git version: 004cd26deee50b7fdf060c06605bbce37bc09794
Mon Jun 15 20:27:32 sys info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686
Mon Jun 15 20:27:32 waiting for connections on port 27017
Mon Jun 15 20:27:32 web admin interface listening on port 28017
ok,启动完毕,我们用mongoDB自带的客户端连接上。
bin/mongo
url: test
connecting to: test
type "help" for help
Mon Jun 15 20:28:09 connection accepted from 127.0.0.1:19943
> help
HELP
show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries with time >= 1ms
use <db name> set curent database to <db name>
db.help() help on DB methods
db.foo.help() help on collection methods
db.foo.find() list objects in collection foo
db.foo.find( { a : 1 } ) list objects in foo where a == 1
it result of the last line evaluated; use to further iterate
> show dbs
admin
local
test
帮助的层次非常清楚。
我们来检查一下mongoDB是否运行正常。
bin/mongo
url: test
connecting to: test
type "help" for help
Mon Jun 15 20:28:56 connection accepted from 127.0.0.1:31975
> db.foo.save( { a : 1 } )
> db.foo.findOne()
{"_id" : "4a3631b14ae1a7d3e24cab82" , "a" : 1}
到这一步,这个强大的mongoDB就安装配置好了,下一篇我们来进一步体验一下这个开源mongoDB的强大功能要点。