9-11redis-分布式全文检索

1.课程介绍
1. 集群与分布式概述;(掌握)
2. redis集群方案选择;(掌握)
3. Redis-Cluster概述;(掌握)
4. Redis-Cluster环境搭建;(掌握)
5. Redis-Cluster环境测试;(掌握)
认识ElasticSearch(了解)
2. ES的及其工具的安装(了解)
3. Restful认识(了解)
4. RestApi模式的文档增删改查(了解)
5. DSL查询与过滤(掌握)
6. 分词与映射(掌握)
7. ES的Java API(掌握)

redis集群

什么是集群:
集群就是 很多服务器组成的一个网络。指的是将多台服务器集中在一起,实现同一业务。

分布式

​多个服务器 去处理不同的业务
往往后面使用的时候,分布式和集群一起来用

redis集群方案

(1)主从复制

​ 优点:

​ 处理高并发 完成 主从同步 读写分离 主备切换

​ 缺点:

​ 服务宕机之后,需要手动启动,会造成一些数据的丢失

(2)哨兵模式

​ 优点:

​ 处理高并发 完成 主从同步 读写分离 主备切换 自动切换

​ 缺点:

​ 服务里面存储的数据都是一样,占用内存比较大 … 扩容比较麻烦

(3)redis-cluster(推荐)

​ 优点:

​ 处理高并发 完成 主从同步 读写分离 主备切换 自动切换, 分布式存储

​ 缺点:麻烦一点 扩容还是比较麻烦

什么是Redis-Cluster
为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。

分布存储机制-槽

容错机制-投票

Redis 3.2
需要 6 台 redis 服务器。搭建伪集群。
需要 6 个 redis 实例。
需要运行在不同的端口 6379-6384

2.5.2.Jedis代码测试
 @Test
    public void testCluster() throws IOException, InterruptedException {
        Set<HostAndPort> nodes = new HashSet<>();
        nodes.add(new HostAndPort("127.0.0.1", 6379));
        nodes.add(new HostAndPort("127.0.0.1", 6380));
        nodes.add(new HostAndPort("127.0.0.1", 6381));
        nodes.add(new HostAndPort("127.0.0.1", 6382));
        nodes.add(new HostAndPort("127.0.0.1", 6383));
        nodes.add(new HostAndPort("127.0.0.1", 6384));
        JedisCluster cluster = new JedisCluster(nodes);
        try {
            String res = cluster.get("name");
            System.out.println(res);
//            cluster.quit();
        } catch (Exception e) {
            e.printStackTrace();
//            cluster.quit();
        }
    }
}

ElasticSearch(简称ES)

ES即为了解决原生Lucene使用的不足,优化Lucene的调用方式,并实现了高可用的分布式集群的搜索方案,其第一个版本于2010年2月出现在GitHub上并迅速成为最受欢迎的项目之一。
首先,ES的索引库管理支持依然是基于Apache Lucene™的开源搜索引擎。
ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
不过,ES的核心不在于Lucene,其特点更多的体现为:
分布式的实时文件存储,每个字段都被索引并可被搜索
分布式的实时分析搜索引擎
可以扩展到上百台服务器,处理PB级结构化或非结构化数据
高度集成化的服务,你的应用可以通过简单的 RESTful API、各种语言的客户端甚至命令行与之
交互。
上手Elasticsearch非常容易。它提供了许多合理的缺省值,并对初学者隐藏了复杂的搜索引擎理论。它拥有开瓶即饮的效果(安装即可使用),只需很少的学习既可在生产环境中使用。

ElasticSearch是什么
和Lucene一样,都是用来做全文检索(创建索引和搜索索引).只是lucene是全文检索工具包,而ES是全文搜索服务器.

相关概念理解
(1)Near Realtime(NRT)
(2)Index:索引库
(3)Type:类型
(4)Document&field
(5)Cluster
(6)Node
(7)shard
(8)replica(ˈreplɪkə,复制品)

集群健康状态

针对一个索引,Elasticsearch 中其实有专门的衡量索引健康状况的标志,分为三个等级: green,绿色。这代表所有的主分片和副本分片都已分配。你的集群是 100% 可用的。
yellow,黄色。所有的主分片已经分片了,但至少还有一个副本是缺失的。不会有数据丢失,所以搜索结果依然是完整的。不过,你的高可用性在某种程度上被弱化。如果更多的分片消失,你就会丢数据了。所以可把 yellow 想象成一个需要及时调查的警告。
red,红色。至少一个主分片以及它的全部副本都在缺失中。这意味着你在缺少数据:搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。如果你只有一台主机的话,其实索引的健康状况也是 yellow,因为一台主机,集群没有其他的主机可以防止副本,所以说,这就是一个不健康的状态,因此集群也是十分有必要的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值