一、什么是Elasticsearch

1、概念以及特点

1、Elasticsearch和MongoDB/Redis/Memcache一样,是非关系型数据库。

是一个接近实时的搜索平台,从索引这个文档到这个文档能够被搜索到只有一个轻微的延迟,企业应用定位:采用Restful API标准的可扩展和高可用的实时数据分析的全文搜索工具。

2、可拓展:支持一主多从且扩容简易,只要cluster.name一致且在同一个网络中就能自动加入当前集群;本身就是开源软件,也支持很多开源的第三方插件。

3、高可用:在一个集群的多个节点中进行分布式存储,索引支持shards和复制,即使部分节点down掉,也能自动进行数据恢复和主从切换。

4、采用RestfulAPI标准:通过http接口使用JSON格式进行操作数据。

5、数据存储的最小单位是文档,本质上是一个JSON 文本:

2、项目中为何使用(主搜索次分析再存储)

2.1、搜索引擎

实际项目开发中,几乎每个系统都会有一个搜索的功能,数据量少时可以直接从主数据库中比如Mysql搜索。

但当搜索做到一定程度时,比如系统数据量上了10亿、100亿条的时候,传统的关系型数据库的I/O性能和统计分析性能就难以满足用户需要了。

所以很多公司都会把搜索单独做成一个独立的模块,用ElasticSearch等来实现。

虽然内存缓存数据库的读写性能很高,但完全把数据放在内存中是不太现实的,比如到PB级别的数据,按照每个节点96G内存计算,

在内存完全装满的数据情况下,需要的机器是:1PB=1024T=1048576G ,节点数就是1048576/96=10922个 ,再考虑到数据备份,节点数还需要翻倍,成本巨大决定了其不现实!

2.2、日志分析

Elasticsearch+ Logstash + Kibana是同一家公司开发的3个开源工具,可组合起来搭建海量日志分析平台,目前很多公司都在使用这种方式搭建日志分析平台进行大数据分析。

3、底层架构

2、RESTFul 介绍

1、什么是RESTFul

REST(RepresentationalState Transfer)是一种软件架构的设计风格(不是标准),通过 HTTP接口处理数据,主要用于客户端和服务器的数据交互。

该风格的具体特点——在服务器端,应用程序对象、数据库记录、算法、文本、图片等都是一个实体资源,使用 URI标识,

所有资源都共享统一的接口(标准的HTTP方法)比如 GET、PUT、POST 和 DELETE,在客户端和服务器之间传输数据。

2、CURL命令的讲解

2.1、什么是CURL

本质就是以命令方式发送HTTP请求,可以完成比如发送表单信息、文件上传、分段下载、模拟登录等,理论上在APP或Web里能操作的通过此指令都能操作。

2.2、具体应用

3、Elasticsearch API文档查看

初识ES数据库的更多相关文章

  1. 初识es

    初识es es是什么? es是基于Apache Lucene的开源分布式(全文)搜索引擎,,提供简单的RESTful API来隐藏Lucene的复杂性. es除了全文搜索引擎之外,还可以这样描述它: ...

  2. Python-将json文件写入ES数据库

    1.安装Elasticsearch数据库 PS:在此之前需首先安装Java SE环境 下载elasticsearch-6.5.2版本,进入/elasticsearch-6.5.2/bin目录,双击执行 ...

  3. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

  4. 一、初识MySQL数据库 二、搭建MySQL数据库(重点) 三、使用MySQL数据库 四、认识MySQL数据库的数据类型 五、操作MySQL数据库的数据(重点)

    一.初识MySQL数据库 ###<1>数据库概述     1. 数据库         长期存储在计算机内的,由组织的可共享的数据集合         存储数据的仓库         文件 ...

  5. 孤荷凌寒自学python第五十五天初识MongoDb数据库

    孤荷凌寒自学python第五十五天第一天初识MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 大家好,2019年新年快乐! 本来我想的是借新年第一天开始,正式尝试学习爬虫,结果今天偶然发现 ...

  6. ES数据库重建索引——Reindex(数据迁移)

    应用背景: 1.当你的数据量过大,而你的索引最初创建的分片数量不足,导致数据入库较慢的情况,此时需要扩大分片的数量,此时可以尝试使用Reindex. 2.当数据的mapping需要修改,但是大量的数据 ...

  7. 初识mysql数据库

    mysqld install :找到你的库 net start mysql ;启动mysql的服务端(server) mysql -uroot -p :启动mysql的客户端(Client) exit ...

  8. ElasticSearch 初识ES

    版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u013047584/article/det ...

  9. 初识MySQL数据库的各种CMD命令窗口下的指令

    今天我们就来看一下数据库的各种命令,以下命令全部是从CMD命令窗口下的命令行输入指令,首先如果如果输入mysql,系统提示"mysql不是内部命令或外部命令.那么这其实是环境变量没有设置好的 ...

随机推荐

  1. 表达式计算开源组件(NCalc.NetCore)

    首先,这款组件是开源的,NCalc是.net中的一个数学表达式求值程序.NCalc可以解析任何表达式并计算结果,包括静态或动态参数和自定义函数. 官网地址:http://ncalc.codeplex. ...

  2. 什么是jsp?

    1.什么是jsp? jsp就是java 服务器页面(java server page) 2.jsp有什么用? jsp的出现是为了解决Servlet页面显示方面的不足. 3.jsp的三种脚本: 4.js ...

  3. 深度学习论文翻译解析(九):Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    论文标题:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 标题翻译:用于视觉识别的深度卷积神 ...

  4. vs dll lib 使用记录

    今天把学习opengl的项目从一个电脑copy到另一个电脑时候,发生了glu.dll找不到,导致项目起不来的问题.后来网上查找发现, 虽然我使用了静态连接 mt/mtd 编译, 但是有可能lib中并没 ...

  5. 前端开发-css

    css: 是给html标签装饰的,变得更好看. 注释: 单行注释:/*注释内容*/ 多行注释:/* 注释内容 注释内容 注释内容 */ 通常我们在写css代码时也会用注释来划分区域(html代码多,同 ...

  6. day25 ATM项目(第一天)

    项目的说明书 项目:ATM + 购物车 项目需求: 1.额度15000或自定义 --> 注册功能 2.实现购物商城,买东西加入购物车,调用信用卡接口结账 --> 购物功能.支付功能 3.可 ...

  7. Centos 6.4最小化安装后的优化(2)

    1.关闭不必要的服务 众所周知,服务越少,系统占用的资源就会越少,所以应当关闭不需要的服务器.首先可以先看下系统中存在哪些已经开启了的服务.查看命令如下: ntsysv 下面列出的是需要启动的服务器, ...

  8. DVWA学习记录 PartⅡ

    Command Injection 1. 题目 Command Injection,即命令注入,是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的. 2. Low a. 代码分析 ...

  9. 数据可视化实例(八): 边缘直方图(matplotlib,pandas)

    https://datawhalechina.github.io/pms50/#/chapter6/chapter6 边缘直方图 (Marginal Histogram) 边缘直方图具有沿 X 和 Y ...

  10. python上selenium的弹框操作

    selenium之弹框操作 1,分类 弹框类型自见解分为四种: 1,页面弹框 2,警告提示框(alert) 3,确认消息框(confirm) 4,提示消息对话(prompt) 提示:selenium ...