2024-01-23(MongoDB&&ElasticSearch)

附上: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,而后获得文档。

相关推荐
weixin_42499936几秒前
php怎么实现API网关聚合_php如何将多个微服务接口合并响应
jvm·数据库·python
2401_835956811 分钟前
SQL在JOIN场景下如何进行索引维护_覆盖索引构建与失效处理
jvm·数据库·python
abc123456sdggfd8 分钟前
c++如何读取并展示ZIP压缩包内的目录结构树_minizip集成【附源码】
jvm·数据库·python
2301_8148098611 分钟前
如何配置Oracle UTL_FILE目录_CREATE DIRECTORY语法与权限分配.txt
jvm·数据库·python
m0_7349497919 分钟前
golang如何使用expvar暴露运行时指标_golang expvar运行时指标暴露步骤
jvm·数据库·python
qq_4138474023 分钟前
开发者工具怎么看HTML_Elements面板使用指南【操作】
jvm·数据库·python
qq_3729069324 分钟前
mysql如何设置密码过期策略_mysql default_password_lifetime
jvm·数据库·python
qq_3300379939 分钟前
mysql在高并发下如何优化索引更新_mysql锁策略与调整
jvm·数据库·python
u01091476040 分钟前
如何排查SQL存储过程内存溢出_优化大数据量临时表使用
jvm·数据库·python
2301_7735536242 分钟前
mysql如何优化mysql在多核CPU下的性能_调整线程并发数
jvm·数据库·python