- 博客(9)
- 收藏
- 关注
原创 大猫老师小课堂搜索引擎专题:ElasticSearch 的使用方法
传统的关系型数据库例如 MySQL 在使用 like 关键词进行模糊搜索时存在以下几个问题:1、只能走全表扫描,性能较差;2、只能按照首尾位进行匹配,无法实现复杂的匹配需求,例如按照 like "%大猫老师%" 是无法检索出只包含大猫或者老师的数据记录的;3、无法针对搜索结果进行打分。为了应对海量文档的全文检索,ElasticSearch 应运而生。在这篇文章中,我们将会简析 ElasticSearch 的使用方法,帮助大家迅速入门搜索引擎。1. 基本概念术语名称解释倒排索引
2021-08-10 02:35:32
239
原创 Java并发编程基础篇(四)——线程池的使用方法
Java并发编程基础篇(四)——线程池的使用方法和原理在并发编程中频繁地创建与销毁线程需要消耗大量系统资源。利用线程池,我们可以复用之前创建好的线程,没有任务的时候,这些线程都处于等待状态。如果有新任务,就分配一个空闲线程执行。如果所有线程都处于忙碌状态,新任务要么放入队列等待,要么增加一个新线程进行处理。本文将会重点讲述线程池的使用方法和原理。1、线程池的使用方法1.1、线程池的处理流程从上图中可以看到线程池分为corePool和maximumPool;每当向ThreadPoolExecuto
2021-02-05 01:20:04
204
1
原创 Java并发编程基础篇(三)——其他JUC并发工具类的使用方法
Java并发编程基础篇(三)——其他并发工具类的使用方法除了上一篇中提到的各类锁之外,JUC包也提供了其他可用于并发场景下的同步工具,包括AtomicInteger等原子操作类、CountDownLatch等并发工具类、ConcurrentHashMap等并发容器。本篇将会重点讲述这类并发工具的概念与使用方法,并简要介绍线程池的使用方法。1、原子操作类java.util.concurrent.atomic包(简称Atomic包)提供了4种类型、12个类的原子更新方式,分别是原子更新基本类型、原子更新数
2021-01-04 02:38:11
236
原创 Java并发编程基础篇(二)——各类锁的使用方法
Java并发编程知识点梳理(一)——并发编程的使用Java并发编程是深入了解Java的必备知识。本文综合了《Java并发编程之美》、《Java并发编程艺术》等经典书籍,也参考了廖雪峰的Java教程,针对Java并发编程的知识点进行梳理。不同于Redis系列从底层数据实现到多机数据库再到实操的视角,Java并发系列将会采用自顶向下的视角,先从使用侧角度讲述如何进行并发编程,再探讨并发编程乃至JUC包的底层原理。因为Redis使用起来比较简单,设计也比较简洁;而Java并发光是使用就已经很让人头疼了,一上来
2020-12-25 02:16:24
195
原创 Java并发编程基础篇(一)——线程的创建与使用
Java并发编程基础篇(一)——线程的创建与使用Java并发编程是深入了解Java的必备知识。本系列综合了《Java并发编程之美》、《Java并发编程艺术》等经典书籍,也参考了廖雪峰的Java教程,针对Java并发编程的知识点进行梳理。不同于Redis系列从底层数据实现到多机数据库再到实操的视角,Java并发系列将会采用自顶向下的视角,先从使用侧角度讲述如何进行并发编程,再探讨并发编程乃至JUC包的底层原理。因为Redis使用起来比较简单,设计也比较简洁;而Java并发光是使用就已经很让人头疼了,一上来
2020-12-23 00:04:41
141
原创 Redis知识点整理(三)——多机数据库实现
Redis知识点整理(三)——多机数据库实现本文紧接着上一篇的内容,简要讲述Redis多机数据库的实现原理,包括一主一从、哨兵模式和集群模式。1、一主一从1.1、旧版复制功能的实现Redis 的复制功能分为同步(sync)和命令传播(command propagate)两个操作:1、同步:当客户端向从服务器发送 SLAVEOF 命令, 要求从服务器复制主服务器时, 从服务器首先需要执行同步操作, 也即是, 将从服务器的数据库状态更新至主服务器当前所处的数据库状态。从服务器对主服务器的同步操作需
2020-12-21 01:48:58
173
原创 Redis知识点整理(二)——单机数据库实现
Redis知识点整理(二)——单机数据库实现本文紧接着上一篇的内容,简要讲述Redis单机数据库的实现原理。1、数据库的结构Redis服务器的数据库信息由redisServer结构定义:struct redisServer { // ... // 服务器的数据库数量,由服务器配置的database选项决定,一般为16 int dbnum; // 一个数组,保存着服务器中的所有数据库 int dbnum; // ...};Redis服务器默认会创建
2020-12-21 01:47:53
238
原创 Redis知识点整理(一)——Redis数据结构
《Redis设计与实现》读书笔记Redis是一个以C语言编写的Key-Value类型数据库,数据库状态保存在内存中,主要用于mysql或oracle sql等重型数据库的缓存,以支持高性能、高并发的应用场景。1、Redis的底层实现1.1、整数集合整数集合(intset)可以用于保存int16_t、int32_t、int64_t的无重复元素的整数值。每个intset结构包含了三个属性,属性encoding指明整数集合中整数值的类型,属性length指明集合中包含的元素数量,而contents[]是存
2020-12-20 01:13:01
414
1
原创 List和数组使用过程中的常见的坑
List和数组使用过程中的常见的坑从整型值List中删除等于某个值的元素,应当先转型创建泛型数组不能直接用new操作符从整型值List中删除等于某个值的元素,应当先转型删除指定索引的元素int remove(int index)和删除某个元素int remove(Object e)都可以用于从List中删除指定的元素。对于整型值List,如果我们想要从中删除掉某个值:// 删除掉entry中值等于target的元素LinkedList<Integer> entry = new Line
2020-08-05 11:17:20
368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人