mongodb是一个可扩展,高性能、开源、模式自由、面向文档的数据库它并不是我们通常用的rdbms,属于最近比较热门的quot;nosqlqu
mongodb是一个可扩展,高性能、开源、模式自由、面向文档的数据库
它并不是我们通常用的rdbms,属于最近比较热门的nosql的数据库范畴
它和一般的基于key-value的db还是不大一样的,因为它本身的功能很强大
它已经实现了类似于sql的很多功能,如index,limit,skip,group….
当应用的数据量达到海量级,传统的mysql,oracle不能满足我们的性能要求
而对于数据还有一定的查询需求时,也许可以考虑一下使用mongodb
安装很简单:
wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.2.4.tgz tar zxvf mongodb-linux-x86_64-1.2.4.tz ln -s /opt/mongodb-linux-x86_64-1.2.4/ /usr/local/mongodbmkdir /opt/mongodb_data mongodb有2个版本的,官方推荐使用mongodb-linux-x86_64-1.2.4.tgz,只有在linux是老系统,mongodb无法启动时,才使用legacy static“版
mongodb里提供了简单的auth功能,如果要开启认证,则在启动之前,需要首先增加用户
/usr/local/mongodb/bin/mongo admin db.adduser('admin','manager') db.auth('admin','manager') show dbs use address db.adduser('mongodb','test') 其中,admin是一个特殊的数据库,只有在admin上db.auth通过后,,才能给其它的数据库增加权限
如上,我们为address数据库增加了一个mongodb的用户
另外,如果我们要启用master/slave模式,而且开启了auth功能,则需要同时在master和slave上的local数据库上增加一个repl的用户
use local db.adduser('repl','replication') 否则,当我们启动slave时,会报错:
replauthenticate: no user in local.system.users to use for authentication
replauthenticate: can't authenticate to master server, user:repl
然后,我们使用如下脚本来分别启动master和slave即可,注意–oplogsize选项,它指定了master往slave同步时,更新日志保存的最大大小,默认64位机器,最大1g,如果太小,slave没有及时跟上的话,有可能会数据不一致
–oplogsize=10000m –logappend –auth –master &在python中,可以使用pymongo模块
db = connection.mail_addr …… db.address.save(user_addr,safe=true) 使用save来保存某个记录,如果我们已经使用find()查处了某个记录,则修改后也可以使用save来进行update操作
如果要实现某条记录不存在就insert,存在就update,则可以使用
mongodb的功能很强大,可以像mysql那样建立索引,且支持多字段索引、支持unique索引…