TCP


为什么需要TCP协议? IP 层是「不可靠」的,它不保证网络包的交付、不保证网络包的按序交付、也不保证网络包中的数据的完整性。 因为 TCP 是一个工作在传输层的可靠数据传输的服务,它能确保接收端接收的网络包是无损坏、无间隔、非冗余和按序的。 说说TCP的三次握手 假设发送端为客户端,接收端为服务端

非分词字段搜索逻辑


简言之 整体通过前缀树的逻辑存储,老版本都是将所有类型的值转为字符串存储的,比如数字也是存储成字符串,因为数值比较大小和字符串不一致,解决的一种办法就是给数字前面补0,但是会浪费空间 当搜索401的时候,会解析成搜40,4 最后从4的前缀树头结点搜索,但是按道理搜索4这个值的时候不应该是从这个节点进

MYSQL主从复制

MySQL 

什么是Mysql的主从复制呢? Mysql的主从复制(Master-slave replication)是一种数据库复制方式,它允许在多个Mysql数据库服务器之间自动地复制数据。其中,一个Mysql服务器充当主服务器,而其他Mysql服务器则充当从服务器。主服务器上的更改会自动地被复制到从服务器上

分布式选举算法


Redis选举领头Sentinel(raft算法) Sentinel是Redis实现高可用的保证。Sentinel系统作用就是监视Redis服务器集群,它可以不停的获得redis集群状态,当一个主节点挂了,故障转移操作会在从节点中选出一个新的主节点,这里故障转移就是由Sentinel来主导完成的。不

ES脑裂原因及避免方式


为何Elasticsearch选择倒排索引而非B树索引?探索背后的差异与优势


索引可能大家都不陌生,在用关系型数据库时,一些频繁用作查询条件的字段我们都会去建立索引来提升查询效率。在关系型数据库中,我们一般都采用 B 树索引进行存储,所以 B 树索引也是我们接触比较多的一种索引数据结构,然而在 es 中,进行全文搜索的时候却并没有选择使用 B 树 索引,而是采用的倒排索引。本

threadlocal

Java 

在threadlocal的生命周期中,都存在这些引用. 看下图: 实线代表强引用,虚线代表弱引用. 下面来看两个问题: 1为什么要使用弱引用 2为什么会出现内存泄露问题

Elasticsearch


生活中的数据 搜索引擎是对数据的检索,所以我们先从生活中的数据说起。 我们生活中的数据总体分为两种:结构化数据 和 非结构化数据。 结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过