美文网首页
MongoDB高可用及索引

MongoDB高可用及索引

作者: VienFu | 来源:发表于2018-10-24 19:16 被阅读0次

MongoDB高可用

  1. 主从模式(弃用)
  2. 使用复制集(replicaSet)
    在复制集中,有且只有一个主节点(primary),可以包含一个或多个从节点(secondary),主从节点直接会通过心跳检测来确定节点是否健康或存活。所有的读写操作都是在主节点上进行的,如果要实现读写分离,需要进行相应的处理,这个最后会说。从节点会根据oplog(也就是操作日志)来复制主节点的数据。

MongoDB复制集

除了主从节点外,MongoDB的复制集中还存在着一种叫仲裁者(Arbiter)的角色。一个仲裁者节点是比较轻量级的,因为它不会去复制主库的数据,因此也就不会成为主节点;但是,它的作用是在投票选举阶段——当主节点故障时,仲裁者可以进行投票。一般来说,不建议一个复制集中包含超过一个仲裁者。

当主节点突然故障后,MongoDB有自己的机制,会自动切换,通过选举,在从节点中选出一个节点作为新的主节点。

使用复制集

比如现在有三个节点(一个primary,两个secondery,且分别部署到三台机器上)

  1. 首先在三台机器上分别创建对应目录(/data/mongo_replset)切启动mongodb:
mongod --port 8015 --dpath=/data/mongo_repliset --replSet test_rs

注意,复制集的名称是一样的

  1. 在primary的机器上把其他两个节点添加到复制集中
cnf = {_id:"test_rs", members:[
        {_id:1, host:"192.168.1.186:8015"},
        {_id:2, host:"192.168.1.187:8015"},
        {_id:3, host:"192.168.1.188:8015"},
        ]
    }

并初始化配置:rs.initiate(cnf)

  1. 连接复制集并自动切换(mongoengine用法)
mongoengine.connect(db={database}, host='mongodb://{username}:{password}@192.168.1.186:8015,192.168.1.187:8015,192.168.1.188:8015/{database}/?authSource={authSource}&replicaSet={replicaSet}', alias={alias})

Mnogo索引的种类及属性

1. 创建索引

基于python,pymongo和mongoengine创建索引的方式不一样

# 假设在集合的book_name建立index
db.collection.create_index({'book_name': 1})  # pymongo
# 而mongoengine一般则是在各个field定义完之后定义一下meta
meta = {
    'index_background': True,
    'indexes': [
        {
            'fields': ['book_name'],
            'sparse': True,  # 稀疏属性
        },
    ],
}

2. 索引的种类

单字段索引,复合索引, 多键索引,地理索引,文本索引,哈希索引

3. 索引属性

唯一索引,部分索引,稀疏索引, TTL索引
索引的稀疏属性确保索引仅包含实际包含索引字段的文档的条目。稀疏索引完全跳过没有索引字段的文档。

相关文章

  • MongoDB高可用及索引

    MongoDB高可用 主从模式(弃用) 使用复制集(replicaSet)在复制集中,有且只有一个主节点(prim...

  • mongoDB基本, 2022-08-26

    (2022.08.26 Thur) 本文包括 mongoDB的应用场景 数据架构 高可用与高扩展 基础语法、索引 ...

  • mongodb索引及查询优化分析

    Mongodb索引及查询优化分析 创建索引 参数说明:keys: {FieldNameOne:ascending,...

  • 【mongoDB】mongoDB的高可用、一致性

    一、MongoDB的高可用 高可用是MongoDB最核心的功能之一,相信很多同学也是因为这一特性才想深入了解它的。...

  • Mongodb 高可用集群

    Kubernetes部署Mongodb高可用集群 Mongo介绍 Mongodb是时下流行的NoSql数据库,它的...

  • Mongodb的用法以及安装

    MongoDB 一. MongoDB 介绍: MongoDB是一个跨平台,面向文档的数据库,高性能,高可用性和易于...

  • mongoDB

    mongoDB基础 MongoDB简介 一个开源文档数据库,提供高性能、高可用性和自动扩展的功能。MongoDB ...

  • 24.Mongodb的索引操作

    Mongodb的索引操作 学习目标 掌握 mongodb索引的创建,删除操作 掌握 mongodb查看索引的方法 ...

  • MongoDB索引二(九)

    MongoDB索引二(九) 接上篇MongoDB索引一

  • 搭建Mongodb高可用分片集群

    搭建Mongodb高可用分片集群 一、规划 服务器:IP:192.168.1.101/192.168.1.102/...

网友评论

      本文标题:MongoDB高可用及索引

      本文链接:https://www.haomeiwen.com/subject/cigxtqtx.html