redis集群&elasticSearch的认识
elasticSearch_day01
1. Redis集群
1.1 什么叫集群
多台服务器集中在一起,实现同一业务
1.2 为什么集群
一台服务器不够,需要多台服务器支持,解决高并发,集群往往伴随分布式
2. 分布式
2.1 什么是分布式
分布式: 把整体业务拆分开,分别放到不同的服务
2.2 为什么要分布式
分布式和集群一起使用
便于维护
解决高并发 ,单点故障问题
便于扩容
3. Redis集群
3.1 为什么需要集群
(1)解决单点故障
(2)处理高并发
(3)处理大数据(高并发) --解决存储问题
3.2 集群方案的选择
(1)主从复制 (读写分离 主从同步)
优点:
支持主从复制,主机会自动将数据同步到从机,可以进行读写分离
缺点:
Redis不具备自动容错和恢复功能,如果想具备自动重起 ,需要安装插件
(2)哨兵模式
自动化的系统监控和故障恢复功能
优点:
主从复制优点都在, 通过哨兵自动恢复
缺点:
比较难扩容,服务占用空间比较多
(3)Redis-Cluster集群
redis的分布式存储,也就是说每台redis节点上存储不同的内容
优点:
上面有都有,解决分布式存储问题 ,容错问题
4. elasticSearch是什么
4.1ES的概念和特点
ES是什么?
es (elasticSearch): 全文检索的框架,专门做搜索,支持分布式,集群
es:全文检索的框架 --封装lucene的,支持分布式(集群) --特点
(1)原生Lucene使用的不足,优化Lucene的调用方式
(2)高可用的分布式集群 ,处理PB级别数据
1024KB -- 1MB
1024MB -- 1GB
1024GB -- 1TB
1024TB - 1PB
(3)它的目的是通过简单的 RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。达到开箱即用的效果
lucene:全文检索 -- api的比较麻烦 操作全文检索的最底层技术
核心: 创建索引 搜索索引
4.2 ES的对手
Solr和ES区别:
(1)Solr重量级, 支持很多种类型操作,支持分布式式,它里面有很多功能,但是在实时领域上面,没有es好
(2)Es 轻量级, 支持json的操作格式, 在实时搜索领域里面做的不错,]如果想使用其他的功能,需要额外安装插件
5. ES的使用
ES 分为服务端 和 客户端
(1)ES服务端
解压 -->bin/elasticsearch.bat -->localhost:9200
a)配置内存:
config/jvm.options
-Xmx1g
-Xms1g
b)健康状态:
green(最健康) -->主分片和从分片(存储内容)都完好,集群是100%健康
yellow -->主分片好的,从分片至少缺少一个,集群还是可以使用,
red -->至少一个主分片以及它的全部副本都在缺失中。这意味着你在缺少数据
(2)ES客户端--navicat
restfull风格 ---> GET/POST/DELETE/PUT shop/goods/1
GET shop/goods/1 -->查询shop这个库goods表 1这条数据
PUT shop/goods {"name":"111"}
POST shop/goods {"name":"111"}
DELETE shop/goods/1
1)postman +head
2)curl-->在firefox安装poster插件
3)Kibana5 -->es
6. 文档的crud
6.1 基本的crud操作
# 新增
PUT crm/employee/1
{
"name":"xiaorong",
"age":18
}
# 修改 --整个文档
POST crm/employee/1
{
"name":"xiaohuahua"
}
# 修改局部文档
POST crm/employee/1/_update
{
"doc":{"name":"xiaohuahua"}
}
# 查询
GET crm/employee/1
# 删除
DELETE crm/employee/1
6.2 特殊的用法
# 展示没有什么效果(了解)
GET crm/employee/AW-tOSHILqo6XVH8f6cg?pretty
# 展示部分的字段
GET crm/employee/AW-tOSHILqo6XVH8f6cg?_source=age,name
# 返回元数据
GET crm/employee/AW-tOSHILqo6XVH8f6cg/_source
# 修改数据 (脚本修改 --了解)
POST crm/employee/AW-tOSHILqo6XVH8f6cg/_update
{
"script" : "ctx._source.age += 5"
}
# 批量新增 --了解
POST _bulk
{ "delete": { "_index": "itsource", "_type": "employee", "_id": "123" }}
{ "create": { "_index": "itsource", "_type": "blog", "_id": "123" }}
{ "title": "我发布的博客111" }
{ "index": { "_index": "itsource", "_type": "blog" }}
{ "title": "我的第二博客2222" }
GET itsource/blog/_search
6.3 文档的查询
1. 通过id查询
GET crm/employee/AW-tOSHILqo6XVH8f6cg(id)/_source
1. 批量查询
# 不同库 不同表数据 (了解)
GET _mget
{
"docs" : [
{
"_index" : "itsource",
"_type" : "blog",
"_id" : "123"
},
{
"_index" : "crm",
"_type" : "employee",
"_id" : "AW-tOSHILqo6XVH8f6cg",
"_source": ["name","age"]
}
]
}
# 同一个库 同一个表数据
GET itsource/blog/_mget
{
"ids":["123","AW-tQP_4Lqo6XVH8f6ci"]
}
2. 其他查询
# 分页查询
GET crm/employee/_search?size=3&from=6
# 带条件查询
GET crm/employee/_search?q=age:38
GET crm/employee/_search?q=age[18 TO 48]
redis集群&elasticSearch的认识的更多相关文章
- Elastic Stack之Redis集群使用
Elastic Stack之Redis集群使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客数据流走向:FileBeat ===>Redis ===>lo ...
- filebeat收集日志传输到Redis集群,logstash从Redis集群中拉取数据
前提:已配置好Redis集群,并设置的有统一的访问密码 架构是filebeat-->redis集群-->logstash->elasticsearch,需要修改filebeat的输出 ...
- Redis集群搭建采坑总结
背景 先澄清一下,整个过程问题都不是我解决的,我在里面就是起了个打酱油的角色.因为实际上我负责这个项目,整个过程也比较清楚.之前也跟具体负责的同事说过,等过段时间带他做做项目复盘.结果一直忙,之前做的 ...
- 架构师之路-redis集群解析
引子 上篇<架构师之路-https底层原理>里我提到了上面的整体视图,文章也介绍了想要真正能在工作中及时正确解决问题的基本功:原理理解透彻.今天以redis集群解析为例介绍一个及时敏锐的发 ...
- Docker-生成镜像、服务搭建(redis集群、kibana、运行项目jar包)、上传镜像至阿里云
目录 生成自己的镜像 1.下载官方tomcat镜像 2.运行镜像后将webapp目录里新增文件(官方镜像是没有页面的 具体操作见) 3.使用docker ps -a 查看刚刚修改后的容器id 4.执行 ...
- Redis集群案例与场景分析
1.背景 Redis的出现确实大大地提高系统大并发能力支撑的可能性,转眼间Redis的最新版本已经是3.X版本了,但我们的系统依然继续跑着2.8,并很好地支撑着我们当前每天5亿访问量的应用系统.想当年 ...
- Java Spring mvc 操作 Redis 及 Redis 集群
本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...
- Redis集群搭建与简单使用
介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. 两台虚拟机都是 CentOS ,一台 ...
- window下使用Redis Cluster部署Redis集群
日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...
随机推荐
- 有基因ID或者基因名,如何拿到对应的KEGG通路图?
1.https://www.kegg.jp/kegg/tool/map_pathway2.html 2.如下图,筛选出基因所在的通路,并标上不同的颜色. 3.结果页面如下,有些基因会找不到对应的通路, ...
- jmeter性能测试2:基础功能介绍
对于英语不好的同学建议先改为简体中文再进行使用 1.添加->threads->线程组(控制总体并发) 线程数:虚拟用户数.一个虚拟用户占用一个进程或线程 ...
- FPGA基础知识关键点摘要
FPGA基础知识关键点摘要 一.组合逻辑和时序逻辑的区别:组合逻辑与输入直接实时相关,时序逻辑还必须在时钟上升沿出发后输出新值,有没有时钟输入是他们最大的区别!组合时序容易出现竞争冒险现象出现亚稳态, ...
- python 内置模块之os、sys、shutil
一.OS模块 用于提供系统级别的操作. OS 目录和文件 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改 ...
- Codeforces_714
A.相遇时间段l = max(l1,l2),r = min(r1,r2),再判断k是否在里面. #include <iostream> using namespace std; long ...
- HDU_1864_01背包
http://acm.hdu.edu.cn/showproblem.php?pid=1864 题目好像是输入的数据都是两位小数,先统计能报销的发票,然后把小数*100变成成熟就是01背包问题了. #i ...
- oracle查询表空间的空间占用情况
,) percent_used from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespac ...
- 【python爬虫】windoes的爬虫中文乱码现象,通用转码解决
page = session.get(url="https://www.qidian.com/") page.encoding = page.apparent_encoding p ...
- Python3(五) 包、模块、函数与变量作用域
一.Python项目的组织结构 最顶级的组织结构:包(文件夹) 第二个层级:模块(文件) 第三个层级:类 第四个层级:函数.变量(不属于组织结构,是类本身的特性) 二.Python包与模块的名字 1. ...
- 20200220--python学习第13天
今日内容 作业题(21题) 推导式 装饰器 模块[可选] 内容回顾 1.函数 a.参数 def func(a1,a2):pass def func(a1,a2=None):pass 默认参数推荐使用不 ...