Yang's Blog

Yang's Blog

ElasticSearch基本操作
发表于2025-09-22|JavaES
ElasticSearch基本操作 es对文档的基本RestFul操作汇总 操作类型 请求方式 URL 格式 说明 示例 创建文档 PUT /{index}/_doc/{id} 指定 ID 创建文档,若 ID 已存在则覆盖 PUT /users/_doc/1携带 JSON 文档:{"name":"张三","age":30} 创建文档(自动生成 ID) POST /{index}/_doc 不指定 ID,ES 自动生成唯一 ID POST /users/_doc携带 JSON 文档:{"name":"李四","age":25} 查看文档 GET /{index}/_doc/{id} 通过 ID 查询单个文档 GET /users/_doc/1 更新文档(全量替换) PUT /{index...
ElasticSearch核心概念
发表于2025-09-22|JavaES
ES核心概念 ElasticSearch是面向文档的,与关系型数据库对比如下 关系型数据库 es 数据库(databases) 索引(indices) 表(tables) types 行(rows) documents 字段(columns) fields es(集群)中包含多个索引,每个索引可以包含多个类型,每个类型下又包含多个文档,文档又包含多个字段。 物理设计: es把每个索引划分为多个分片,每个分片可以在集群的不同服务器间迁移,一个es节点就是一个集群。 逻辑设计: 一个索引当中,包含多个文档,可以通过索引->类型->文档ID索引到到某个具体的文档 文档 文档是索引和搜索数据的最小单位,以JSON格式存储,具备天然的灵活性,无需预先严格定义,但是文档中每个字段的类型非常重要,es会保存字段与类型间的映射 类型 类型是文档的逻辑容器,就像关系型数据库的表一样,类型对字段的定义称为映射,类型的概念逐渐被抛弃,高版本的es中一个索引只包含一个类型:_doc 索引 索引是类型的容器,或者说文档的集合,索引存储了映射类型的字...
Docker
发表于2025-07-01|JavaDocker
Docker 学习笔记一、Docker 基础概念1.1 什么是 DockerDocker 是一款开源的容器化部署工具,基于 Go 语言开发,能够将应用程序及其依赖、运行环境、配置文件统一打包为镜像,实现一次构建、随处运行。 其核心解决了传统部署的痛点:环境不一致、依赖冲突、部署繁琐、资源占用高、迁移困难等问题,广泛应用于开发、测试、生产全流程。 1.2 核心优势 轻量高效:容器共享宿主机内核,无需完整操作系统,资源占用远低于虚拟机,启动速度秒级响应 环境一致:打包完整运行环境,彻底解决“本地能跑、服务器报错”的环境差异问题 便携可移植:镜像可跨系统、跨服务器迁移,部署流程标准化、自动化 隔离性强:容器之间资源、进程、网络相互隔离,互不干扰 弹性扩展:配合 Compose、K8s 可快速实现服务扩容、缩容与集群部署 1.3 核心四大组件 Docker 引擎(Docker Engine):核心服务,包含守护进程、API、命令行工具,是 Docker 运行的基础 镜像(Image):只读的应用模板,包含应用、依赖、环境、配置,是创建容器的模板,不可修改 容器(Conta...
Linux
发表于2025-06-30|JavaLinux
Linux基础命令Linux的目录结构 /,根目录是最顶级的目录了 Linux只有一个顶级目录:/ 路径描述的层次关系同样适用/来表示 /home/itheima/a.txt,表示根目录下的home文件夹内有itheima文件夹,内有a.txt ls命令功能:列出文件夹信息 语法:ls [-l -h -a] [参数] 参数:被查看的文件夹,不提供参数,表示查看当前工作目录 -l,以列表形式查看 -h,配合-l,以更加人性化的方式显示文件大小 -a,显示隐藏文件 隐藏文件、文件夹在Linux中以.开头的,均是隐藏的。 默认不显示出来,需要-a选项才可查看到。 pwd命令功能:展示当前工作目录 语法:pwd cd命令功能:切换工作目录 语法:cd [目标目录] 参数:目标目录,要切换去的地方,不提供默认切换到当前登录用户HOME目录 HOME目录每一个用户在Linux系统中都有自己的专属工作目录,称之为HOME目录。 普通用户的HOME目录,默认在:/home/用户名 root用户的HOME目录,在:/root FinalShell登...
MyBatisPlus扩展功能
发表于2025-02-19|JavaMybatis
3.扩展功能3.1.代码生成在使用MybatisPlus以后,基础的Mapper、Service、PO代码相对固定,重复编写也比较麻烦。因此MybatisPlus官方提供了代码生成器根据数据库表结构生成PO、Mapper、Service等相关代码。只不过代码生成器同样要编码使用,也很麻烦。 这里推荐大家使用一款MybatisPlus的插件,它可以基于图形化界面完成MybatisPlus的代码生成,非常简单。 3.1.1.安装插件在Idea的plugins市场中搜索并安装MyBatisPlus插件, 然后重启你的Idea即可使用。 3.1.2.使用刚好数据库中还有一张address表尚未生成对应的实体和mapper等基础代码。我们利用插件生成一下。 首先需要配置数据库地址,在Idea顶部菜单中,找到other,选择Config Database 在弹出的窗口中填写数据库连接的基本信息 然后再次点击Idea顶部菜单中的other,然后选择Code Generator 在弹出的表单中填写信息 最终,代码自动生成到指定的位置了: 3.2.静态工具有的时候Service...
MyBatisPlus核心功能
发表于2025-02-19|JavaMybatis
2.核心功能刚才的案例中都是以id为条件的简单CRUD,一些复杂条件的SQL语句就要用到一些更高级的功能了。 **2.1.**条件构造器除了新增以外,修改、删除、查询的SQL语句都需要指定where条件。因此BaseMapper中提供的相关方法除了以id作为where条件以外,还支持更加复杂的where条件。 参数中的Wrapper就是条件构造的抽象类,其下有很多默认实现,继承关系如图: Wrapper的子类AbstractWrapper提供了where中包含的所有条件构造方法: 而QueryWrapper在AbstractWrapper的基础上拓展了一个select方法,允许指定查询字段: 而UpdateWrapper在AbstractWrapper的基础上拓展了一个set方法,允许指定SQL中的SET部分: 接下来,我们就来看看如何利用Wrapper实现复杂查询。 2.1.1.QueryWrapper无论是修改、删除、查询,都可以使用QueryWrapper来构建查询条件。接下来看一些例子: 查询:查询出名字中带o的,存款大于等于1000元的人。代码如下: 12...
MyBatisPlus快速入门
发表于2025-02-19|JavaMybatis
1.快速入门大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是MybatisPlus。 当然,MybatisPlus不仅仅可以简化单表操作,而且还对Mybatis的功能有很多的增强。可以让我们的开发更加的简单,高效。 通过学习MybatisPlus,我们要达成下面的目标: 能利用MybatisPlus实现基本的CRUD 会使用条件构建造器构建查询和更新语句 会使用MybatisPlus中的常用注解 会使用MybatisPlus处理枚举、JSON类型字段 会使用MybatisPlus实现分页 为了方便测试,我们先创建一个新的项目,并准备一些基础数据。 1.1.环境准备复制课前资料提供好的一个项目到你的工作空间(不要包含空格和特殊字符) 接下来,要导入两张表,在课前资料中已经提供了SQL文件 最后,在application.yaml中修改jdbc参数为你自己的数据库参数: 1234567891011s...
Redis原理-内存回收
发表于2024-12-04|JavaRedis
3、原理篇-Redis内存回收3.1、过期key处理Redis之所以性能强,最主要的原因就是基于内存存储。然而单节点的Redis其内存大小不宜过大,会影响持久化或主从同步性能。我们可以通过修改配置文件来设置Redis的最大内存: 当内存使用达到上限时,就无法存储更多数据了。为了解决这个问题,Redis提供了一些策略实现内存回收: 内存过期策略 在学习Redis缓存的时候我们说过,可以通过expire命令给Redis的key设置TTL(存活时间): 可以发现,当key的TTL到期以后,再次访问name返回的是nil,说明这个key已经不存在了,对应的内存也得到释放。从而起到内存回收的目的。 Redis本身是一个典型的key-value内存存储数据库,因此所有的key、value都保存在之前学习过的Dict结构中。不过在其database结构体中,有两个Dict:一个用来记录key-value;另一个用来记录key-TTL。 这里有两个问题需要我们思考:Redis是如何知道一个key是否过期呢? 利用两个Dict分别记录key-value对及key-ttl对 是不是TTL...
Redis原理-网络模型
发表于2024-12-03|JavaRedis
2、原理篇-Redis网络模型2.1 用户空间和内核态空间服务器大多都采用Linux系统,这里我们以Linux为例来讲解: ubuntu和Centos 都是Linux的发行版,发行版可以看成对linux包了一层壳,任何Linux发行版,其系统内核都是Linux。我们的应用都需要通过Linux内核与硬件交互 用户的应用,比如redis,mysql等其实是没有办法去执行访问我们操作系统的硬件的,所以我们可以通过发行版的这个壳子去访问内核,再通过内核去访问计算机硬件 计算机硬件包括,如cpu,内存,网卡等等,内核(通过寻址空间)可以操作硬件的,但是内核需要不同设备的驱动,有了这些驱动之后,内核就可以去对计算机硬件去进行 内存管理,文件系统的管理,进程的管理等等 我们想要用户的应用来访问,计算机就必须要通过对外暴露的一些接口,才能访问到,从而简介的实现对内核的操控,但是内核本身上来说也是一个应用,所以他本身也需要一些内存,cpu等设备资源,用户应用本身也在消耗这些资源,如果不加任何限制,用户去操作随意的去操作我们的资源,就有可能导致一些冲突,甚至有可能导致我们的系统出现无法运行...
Redis原理-数据结构
发表于2024-11-19|JavaRedis
1、原理篇-Redis数据结构1.1 Redis数据结构-动态字符串我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题:获取字符串长度的需要通过运算非二进制安全不可修改Redis构建了一种新的字符串结构,称为简单动态字符串(Simple Dynamic String),简称SDS。 例如,我们执行命令: 那么Redis将在底层创建两个SDS,其中一个是包含“name”的SDS,另一个是包含“虎哥”的SDS。 Redis是C语言实现的,其中SDS是一个结构体,源码如下: 例如,一个包含字符串“name”的sds结构如下: SDS之所以叫做动态字符串,是因为它具备动态扩容的能力,例如一个内容为“hi”的SDS: 假如我们要给SDS追加一段字符串“,Amy”,这里首先会申请新内存空间: 如果新字符串小于1M,则新空间为扩展后字符串长度的两倍+1; 如果新字符串大于1M,则新空间为扩展后字符串长度+1M+1。称为内存预分配。...
1…345…10
avatar
Yang
萌新打怪升级中......
文章
99
标签
221
分类
21
Follow Me
公告
This is my Blog
最新文章
对象与常用内置 API2026-09-12
函数2026-09-12
流程控制、数组与集合2026-09-12
变量、数据类型与运算符2026-09-12
移动端与响应式2026-09-12
分类
  • Git1
  • Java73
    • Docker1
    • ES3
    • JavaSE17
    • LangChain4J5
    • Linux1
    • Mybatis3
标签
倒排索引 抽象工厂模式 缓存雪崩 梯度下降 BigKey 静态工具 BeanFactory ID3 极大似然估计 双亲委派模型 Spring Framework 序列化流 有监督学习 同步调用 DispatcherServlet 动静分离 强化学习 BIO 故障转移 tika master Direct 声明式事务 SpringAMQP 依赖注入 代理模式 ndarray KNN nginx ControllerAdvice 增量同步 异步调用 对象 Topic 反向代理 RDB 控制反转 文档 枚举处理 缓存穿透
归档
  • 九月 2026 7
  • 八月 2026 2
  • 六月 2026 1
  • 五月 2026 4
  • 四月 2026 9
  • 一月 2026 5
  • 十月 2025 2
  • 九月 2025 2
网站信息
文章数目 :
99
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By Yang框架 Hexo 7.3.0|主题 Butterfly 5.5.5-b1