MongoDB副本集与与分片
MongoDB的复制集和分片是两种不同的技术,用于处理不同的数据量和请求负载。
复制集:
复制集是一组维护相同数据副本的MongoDB服务器。提供高可用性和数据冗余,是MongoDB的基础特性之一。
# 启动复制集
mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0
mongod --port 27018 --dbpath /srv/mongodb/db1 --replSet rs0
mongod --port 27019 --dbpath /srv/mongodb/db2 --replSet rs0
# 初始化复制集
mongo --port 27017
> rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "localhost:27017" },
{ _id: 1, host: "localhost:27018" },
{ _id: 2, host: "localhost:27019" }
]
}
)
分片:
分片是将数据库分散到多个服务器上,用于处理大量数据和高吞吐量的技术。
# 启动分片集群
mongod --port 27017 --dbpath /srv/mongodb/shard0 --shardsvr
mongod --port 27027 --dbpath /srv/mongodb/shard1 --shardsvr
mongod --port 27037 --dbpath /srv/mongodb/shard2 --shardsvr
# 配置复制集
mongo --port 27017
> sh.status()
# 分片配置
sh.enableSharding("mydb")
sh.shardCollection("mydb.mycollection", {"myKey": 1})
复制集用于数据的冗余和高可用性,而分片用于数据的分布和性能优化。根据实际需求选择合适的技术。
评论已关闭