当前位置: 首页 > news >正文

2024-01-23(MongoDBElasticSearch)

附上:MongoDB详解,用心看这篇就够了【重点】-CSDN博客

1.MongoDB中的副本集

是一组维护相同数据集得mongodb服务。副本集可以提供冗余和高可用性,是所有生产部署的基础。也可以说,副本集是类似于有自动故障恢复功能的主从集群。

主节点,从节点,仲裁节点。

2.MongoDB副本集中主节点的选举原则:

MongoDB在副本集中,会自动进行主节点的选举,主节点的选举的触发条件:

1)主节点故障

2)主节点网络不可达(默认心跳为10s)

3)人工干预

选举规则:

票数最高;如果票数相同,数据新的节点获胜(数据的新旧是根据操作日子oplog来对比的)

在选举过程中,优先级很重要,优先级越高,获得其他人的投票的几率就越大。

3.我定义好后端接口规范,前端为我传递我所需要的参数。

4.分片集群

分片集群是一种跨多台机器分布数据的方法,MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署。换句话说:分片是指将数据拆分,将其分散存在不同的机器上的过程。将数据分散到不同机器上,不需要功能强大的大型计算机就可以存储更多的数据,处理更多的负载。

5.MongoDB分片集群包含以下组件:

1)分片(存储):每个分片包含分片数据的子集。每个分片都可以部署为副本集。

2)mongos(路由):mongos充当查询路由器,在客户端应用程序和分片集群之间提供接口。

3)config servers(“调度”的配置):配置服务器存储集群的元数据和配置设置。

6.MongoDB的安全认证:

默认情况下,MongoDB不会对连接客户端进行用户验证,这是十分危险的。为了保证mongodb的安全可以做以下几个步骤:

1)使用新的端口,默认27017端口如果一旦知道了ip就可以连接上,不安全。

2)设置mongodb的网络环境,最好将mongodb部署到公司服务器的内网中,这样外网是访问不到的,公司内部使用vpn等。

3)开启安全认证。认证要同时设置服务器之间的内部认证方式,同时要设置客户端连接到集群的账号密码认证方式。

7.什么是elasticsearch:

elasticsearch是一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能。

8.什么是elastic stack(ELK):

是以elasticsearch为核心的技术栈,包括beats(用来做数据收集)、logstash(用来做数据收集)、kihana(用来做数据展示)、elasticsearch(负责数据的搜索,存储等核心功能)。

9.什么是Lucece:

elasticsearch的底层就是基于Lucece来实现的。Lucece是Apache的开源搜索引擎类库,提供了搜索引擎的核心API

10.正向索引和倒序索引:

传统数据库(mysql)使用正向索引,

elasticsearch采用倒序索引:

文档:每条数据就是一个文档

词条:文档按照语义分成的词语

eg:

用elasticsearch搜索的流程案例:

11.elasticsearch的倒排索引的含义是:

传统是根据文档去找词条,但是es是根据词条去找文档。这就是倒排索引的含义。

12.总结:

文档:每一条数据就是一个文档。

词条:对文档中的内容分词,得到的词语就是词条

正向索引:基于文档id创建索引。查询词条时必须先找到文档,而后判断是否包含词条。

倒排索引:对文档内容分词,对词条创建索引,并记录词条所在文档的信息。查询时现根据词条查询文档id,而后获得文档。

相关文章:

  • 流动的边框用css怎么实现
  • 国标GB28181协议EasyCVR启动失败报错“Local Machine Check Error”的解决方法
  • Spring/Spring boot项目接入traceId
  • Golang TCP/IP服务器/客户端应用程序,设计一个简单可靠帧传送通信协议。(并且正确处理基于流式控制协议,带来的应用层沾帧[沾包]问题)
  • Linux调试器-gdb使用
  • 免费的WordPress插件大全
  • 生命在于折腾——WeChat机器人的研究和探索
  • c++ 中 什么是转交函数
  • PaddleNLP 如何打包成Windows环境可执行的exe?
  • git bash右键菜单失效解决方法
  • Linux 一键部署influxd2-telegraf
  • vue3模板中使用全局常量和全局方法
  • 小型内衣洗衣机什么牌子好?小型洗衣机全自动
  • 前端JavaScript篇之找出数组中重复的数字、js中数组是如何在内存中存储的?原生遍历数组的方式有哪些?请对以下数组,根据 `born` 的值降序排列
  • AI对比:ChatGPT和文心一言的区别和差异
  • 2017-08-04 前端日报
  • CentOS7 安装JDK
  • ES学习笔记(12)--Symbol
  • javascript从右向左截取指定位数字符的3种方法
  • JavaScript的使用你知道几种?(上)
  • Kibana配置logstash,报表一体化
  • OSS Web直传 (文件图片)
  • PHP面试之三:MySQL数据库
  • 基于遗传算法的优化问题求解
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 使用common-codec进行md5加密
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 网络应用优化——时延与带宽
  • 我是如何设计 Upload 上传组件的
  • 我这样减少了26.5M Java内存!
  • 协程
  • 学习JavaScript数据结构与算法 — 树
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 阿里云ACE认证学习知识点梳理
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #在 README.md 中生成项目目录结构
  • (2)STL算法之元素计数
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (分布式缓存)Redis分片集群
  • (六)Hibernate的二级缓存
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (学习日记)2024.01.09
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET delegate 委托 、 Event 事件
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET框架设计—常被忽视的C#设计技巧
  • /etc/fstab和/etc/mtab的区别