阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS7 安装MongoDB 3.0服务

184次阅读
没有评论

共计 6753 个字符,预计需要花费 17 分钟才能阅读完成。

1,下载 & 安装

MongoDB 3.0 正式版本发布! 这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大、灵活而且易于管理的数据库管理系统。MongoDB 宣称,3.0 新版本不只提升 7 到 10 倍的写入效率以及增加 80% 的数据压缩率,还能减少 95% 的运维成本。
MongoDB 3.0 主要新特性包括:
·可插入式的存储引擎 API
·支持 WiredTiger 存储引擎
·MMAPv1 提升
·复制集全面提升
·集群方面的改进
·提升了安全性
·工具的提升
WiredTiger 存储引擎是一项难以置信的技术实现,提供无门闩、非堵塞算法来利用先进的硬件平台 (如大容量芯片缓存和线程化架构) 来提升性能。通过 WiredTiger,MongoDB 3.0 实现了文档级别的并发控制,因此大幅提升了大并发下的写负载。

MongoDB 提供了 CentOS yum 安装方式。
参考:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/
pdf 手册:
http://docs.mongodb.org/manual/MongoDB-manual.pdf

vi /etc/yum.repos.d/mongodb-org-3.0.repo

[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/RedHat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1

安装 mongodb

yum install -y mongodb-org

安装了所有相关服务。

......
Running transaction
  Installing : mongodb-org-shell-3.0.2-1.el7.x86_64      1/5 
  Installing : mongodb-org-tools-3.0.2-1.el7.x86_64      2/5 
  Installing : mongodb-org-mongos-3.0.2-1.el7.x86_64     3/5 
  Installing : mongodb-org-server-3.0.2-1.el7.x86_64     4/5 
  Installing : mongodb-org-3.0.2-1.el7.x86_64            5/5 
  Verifying  : mongodb-org-3.0.2-1.el7.x86_64           1/5 
  Verifying  : mongodb-org-server-3.0.2-1.el7.x86_64    2/5 
  Verifying  : mongodb-org-mongos-3.0.2-1.el7.x86_64    3/5 
  Verifying  : mongodb-org-tools-3.0.2-1.el7.x86_64     4/5 
  Verifying  : mongodb-org-shell-3.0.2-1.el7.x86_64     5/5

配置文件在:/etc/mongod.conf
数据文件在:/var/lib/mongo
日志文件在:/var/log/mongodb
mongodb 服务使用

# 启动
service mongod start
# 停止
service mongod stop
# 重启
service mongod restart
# 增加开机启动
chkconfig mongod on

2,MongoDB CRUD

参考:
http://docs.mongodb.org/manual/core/crud-introduction/

连接到 MongoDB,很简单,执行 mongo 就可以了。

# mongo
MongoDB shell version: 3.0.2
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2015-04-29T18:03:17.544+0800 I STORAGE  [initandlisten] 
2015-04-29T18:03:17.544+0800 I STORAGE  [initandlisten] ** WARNING: Readahead for /var/lib/mongo is set to 4096KB
2015-04-29T18:03:17.544+0800 I STORAGE  [initandlisten] **          We suggest setting it to 256KB (512 sectors) or less
2015-04-29T18:03:17.544+0800 I STORAGE  [initandlisten] **          http://dochub.mongodb.org/core/readahead
2015-04-29T18:03:17.679+0800 I CONTROL  [initandlisten] 
2015-04-29T18:03:17.679+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-04-29T18:03:17.679+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2015-04-29T18:03:17.679+0800 I CONTROL  [initandlisten] 
2015-04-29T18:03:17.679+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-04-29T18:03:17.679+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2015-04-29T18:03:17.679+0800 I CONTROL  [initandlisten] 
2015-04-29T18:03:17.679+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
2015-04-29T18:03:17.679+0800 I CONTROL  [initandlisten] 
> 

2.1,创建数据:

http://docs.mongodb.org/manual/tutorial/insert-documents/
http://docs.mongodb.org/manual/reference/method/db.collection.insert/

> db.users.insert(... {... name:"zhang san",
... age:26,
... city:"bei jing"
... }
... )
WriteResult({"nInserted" : 1 })
> db.users.insert(... {... _id:1,
... name:"zhang san",
... age:26,
... city:"bei jing"
... }
... )
WriteResult({"nInserted" : 1 })
> db.users.insert(... {... _id:1,
... name:"zhang san",
... age:26,
... city:"bei jing"
... }
... )
WriteResult({"nInserted" : 0,
        "writeError" : {"code" : 11000,
                "errmsg" : "E11000 duplicate key error index: test.users.$_id_ dup key: {: 1.0}"
        }
})
> db.users.insert(... {... _id:2,
... name:"li si",
... age:28,
... city:"shang hai"
... }
... )
WriteResult({"nInserted" : 1 })

数据可以没有主键_id,如果没有,会自动生成一个。如果设置了_id 主键,就必须不重复。
否则报主键冲突:“E11000 duplicate key error index: test.users.$_id_ dup key: {: 1.0}”

2.2,更新数据:

http://docs.mongodb.org/manual/tutorial/modify-documents/

> db.users.update(... {_id:2},
... {... $set: {... city:"guang zhou"
... }
... }
... )
WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.users.update(... {_id:3},
... {... $set: {... city:"si chuan"
... }
... },
... {upsert: true}
... )
WriteResult({"nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 3 })

更新使用 update,如果增加{upsert: true},则表示没有查询到数据直接插入。

2.3,删除:

http://docs.mongodb.org/manual/tutorial/remove-documents/

> db.users.remove({_id:3})
WriteResult({"nRemoved" : 1 })
> db.users.remove({_id:4})
WriteResult({"nRemoved" : 0 })

查询到数据才进行删除,并且返回删除数量。

2.4,查询:

http://docs.mongodb.org/manual/tutorial/query-documents/

> db.users.find({age:{ $gt: 26}})
{"_id" : 2, "name" : "li si", "age" : 28, "city" : "guang zhou" }
> db.users.find({age:{ $gt: 25}})
{"_id" : ObjectId("5540adf29b0f52a6786de216"), "name" : "zhang san", "age" : 26, "city" : "bei jing" }
{"_id" : 1, "name" : "zhang san", "age" : 26, "city" : "bei jing" }
{"_id" : 2, "name" : "li si", "age" : 28, "city" : "guang zhou" }
# 查询全部数据
> db.users.find()
{"_id" : ObjectId("5540adf29b0f52a6786de216"), "name" : "zhang san", "age" : 26, "city" : "bei jing" }
{"_id" : 1, "name" : "zhang san", "age" : 26, "city" : "bei jing" }
{"_id" : 2, "name" : "li si", "age" : 28, "city" : "guang zhou" }

2.5,更多方法

db.collection.aggregate()
db.collection.count()
db.collection.copyTo()
db.collection.createIndex()
db.collection.getIndexStats()
db.collection.indexStats()
db.collection.dataSize()
db.collection.distinct()
db.collection.drop()
db.collection.dropIndex()
db.collection.dropIndexes()
db.collection.ensureIndex()
db.collection.explain()
db.collection.find()
db.collection.findAndModify()
db.collection.findOne()
db.collection.getIndexes()
db.collection.getShardDistribution()
db.collection.getShardVersion()
db.collection.group()
db.collection.insert()
db.collection.isCapped()
db.collection.mapReduce()
db.collection.reIndex()
db.collection.remove()
db.collection.renameCollection()
db.collection.save()
db.collection.stats()
db.collection.storageSize()
db.collection.totalSize()
db.collection.totalIndexSize()
db.collection.update()
db.collection.validate()

3,MongoDB 可视化工具

http://www.robomongo.org/
CentOS7 安装 MongoDB 3.0 服务

使用可视化工具,方便使用 MongoDB 管理。
首先要修改下端口和 ip
vi /etc/mongod.conf

port=27017

dbpath=/var/lib/mongo

# location of pidfile
pidfilepath=/var/run/mongodb/mongod.pid

# Listen to local interface only. Comment out to listen on all interfaces.
bind_ip=192.168.1.36

然后重启 MongoDB

service mongod restart

接下来就可以创建一个 mongodb 连接:
CentOS7 安装 MongoDB 3.0 服务
连接成功之后效果:
CentOS7 安装 MongoDB 3.0 服务

4,总结

MongoDB 3.0 操作起来还是很方便的。能高效的使用。
同时 MongoDB 扩展也很方便。接下来研究。
对应互联网业务来说没有复杂的 join 查询。只追求高效,快速访问。

更多 MongoDB 相关教程见以下内容

CentOS 编译安装 MongoDB 与 mongoDB 的 php 扩展 http://www.linuxidc.com/Linux/2012-02/53833.htm

CentOS 6 使用 yum 安装 MongoDB 及服务器端配置 http://www.linuxidc.com/Linux/2012-08/68196.htm

Ubuntu 13.04 下安装 MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htm

MongoDB 入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htm

Ubunu 14.04 下 MongoDB 的安装指南 http://www.linuxidc.com/Linux/2014-08/105364.htm

《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htm

Nagios 监控 MongoDB 分片集群服务实战 http://www.linuxidc.com/Linux/2014-10/107826.htm

基于 CentOS 6.5 操作系统搭建 MongoDB 服务 http://www.linuxidc.com/Linux/2014-11/108900.htm

MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/130594.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计6753字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中