摘要:
/**https://leetcode-cn.com/problems/reorder-list/submissions/ * Definition for singly-linked list. * public class ListNode { * int val; * ListNode nex 阅读全文
摘要:
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * }核心思路(其实就是 阅读全文
摘要:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } 核心思想:判断当前节点是否需要删除的方法 阅读全文
摘要:
现象: CPU 100% tomcat处理线程数升高 数据库访问次数升高 接口响应时间边长 结论: Redis挂掉,缓存穿透 分析: Redis挂掉,所有请求打到DB,所以DB访问量增加 由于每个请求都访问DB,所以接口响应时间边长 由于接口响应时间边长,所以tomcat创建更多线程来处理请求 由于 阅读全文
摘要:
缓存中放余额和消费,实时余额 = 余额 - 消费 消费时先减余额,再判断余额是否大于0,如果小于0,再把减的给加回去 https://www.zhihu.com/question/61484424/answer/190626505 阅读全文
摘要:
主要文件: ibdata:主系统表空间,记录了InnoDB的核心信息,包括事务系统信息、元数据信息、change buffer的btree、防止数据损坏的double write buffer 等等,以16K为最小单位组织。 idb:用户独立表空间,每个表都有单独的idb文件,存储了所有的索引数据, 阅读全文
摘要:
Java语言里的Lock、synchornized实现了用户透明的获取互斥锁的功能,如果线程有先来后到,没有什么疑问,先来的先拿到锁,后来的等待,如果两个线程同时到达由哪个线程获取?这里的同时是真正意义上的同时,两个线程分别在两个核(假设多个核使用同一个时钟,没有验证过)同一时钟周期上开始获取锁,那 阅读全文
摘要:
PhaseScorer解决的是语句搜索场景,例如搜索hello world,这表示命中的文档中要hello world这样的句子,两个单词的前后顺序固定。PhaseScorer有两个实现类:ExactPhaseScorer和SloppyPhaseScorer,分别解决搜索脚本里多个单词中间没有其他单 阅读全文
摘要:
查询有哪些文档包含某个词元是Lucene搜索非常基础的一个功能,上层的搜索功能和索引功能都要基于这个功能来搭建。SegmentTermDocs就是查询词元所属文档的核心类,SegmentTermPositions的功能是查询某个词元在某个文档中出现的位置,这个在需要在搜索时返回词元位置时会用到。 这 阅读全文
摘要:
TermInfosReader类是Lucene搜索的核心代码,所有的搜索最终都是落到通过term查询,TermInfosReader里定义了支持的基础的term查询功能。 前置知识: 词元字典文件(tis): 文件描述: 文件中的term按照从小到大排序,排序规则:先按照属性名排,如果属性名相同,再 阅读全文