1 mongodb介绍
MongoDB是一个领先的NoSQL数据库,由MongoDB Inc.(原10gen)开发,以其高性能、高可用性和易扩展性而闻名。MongoDB是一个文档数据库,这意味着它以文档(类似于JSON对象)的形式存储数据。作为一个非关系型数据库,MongoDB为开发人员提供了一种灵活、动态的方法来存储和处理数据。
MongoDB作为一个文档数据库,提供了与传统关系型数据库不同的方法来存储和处理数据。其灵活性、高性能和易于扩展的特性使其成为当今许多类型应用的理想选择。无论是快速发展的初创公司,还是需要处理大规模数据集的大企业,MongoDB都能提供强大的功能和灵活性以满足他们的需求。随着数据驱动应用的不断增长,MongoDB在现代数据库领域的重要性将继续增加。
1.1 核心特性
-
文档导向:MongoDB使用BSON(一种类似JSON的格式)存储数据,允许内嵌文档和数组,这提供了比传统关系型数据库更丰富的数据表达力。
-
高性能:MongoDB提供了高性能的数据读写操作,特别适合于处理大量的数据和高流量的Web应用。
-
高可用性:通过复制集(Replica Set)功能,MongoDB提供了数据的高可用性。复制集是一组维护相同数据集的MongoDB服务器。
-
水平可扩展性:MongoDB可以通过分片(Sharding)来水平扩展。这允许数据库处理更大的数据集和更高的吞吐量。
-
丰富的查询语言:MongoDB支持丰富的查询语言,允许执行各种复杂的查询操作,包括文档查询、聚合查询等。
-
灵活的索引支持:支持多种类型的索引,包括文本索引、地理空间索引等,以优化查询性能。
1.2 使用场景
-
大数据应用:MongoDB非常适合处理大量的数据和复杂的数据结构,这使得它成为大数据应用的理想选择。
-
内容管理和交付:其动态的模式特性使其非常适合于内容管理系统(CMS)。
-
移动应用:MongoDB的灵活性和可扩展性使其适合于快速迭代和快速增长的移动应用后端。
-
社交网络:可以有效地存储和处理大量社交互动数据。
-
物联网(IoT):适合处理来自各种设备的大量实时数据。
1.3 架构组成
-
MongoD:MongoDB的主要服务器进程,负责处理数据请求,存储数据。
-
MongoS:分片环境中的路由服务,处理客户端的请求并将其定向到正确的MongoD实例。
-
复制集:一组MongoD实例,它们保持相同数据的副本以实现高可用性。
-
分片:将数据分布在多个MongoD实例上,以支持大型数据库和高吞吐量操作。
1.4 开发与部署
-
驱动程序:MongoDB提供了多种语言的驱动程序,包括Java、Python、Node.js等,方便开发者使用。
-
部署选项:可以在本地部署MongoDB,也可以选择使用MongoDB Atlas,这是MongoDB Inc.提供的数据库即服务(DBaaS)解决方案。
-
管理工具:包括MongoDB Compass和各种命令行工具,用于管理和维护MongoDB实例。
1.5 安全性
-
认证和授权:MongoDB支持多种认证机制,包括LDAP、Kerberos等。
-
加密:支持数据在传输和静态存储时的加密。
-
审计:企业版提供审计功能,记录对数据库系统的操作。
1.6 社区和生态系统
MongoDB拥有一个活跃的社区和生态系统,社区成员包括开发人员、数据库管理员和爱好者。社区提供了丰富的资源,包括在线文档、论坛、技术博客和用户组。
2 mongodb安装
2.1 配置MongoDB的yum源
# 编辑文件
vim /etc/yum.repos.d/mongodb-org-3.6.repo
# 添加以下内容
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
2.2 安装mongodb
yum install -y mongodb-org
2.3 启动mongodb
# 启动 systemctl start mongod.service # 停止 systemctl stop mongod.service # 重启 systemctl restart mongod.service
# 开机启动
systemctl enable mongod.service