Git常用命令整理
Git常用命令全面整理本文全面整理Git日常开发中高频使用命令,按功能分类,每条命令附一句话说明,简洁易懂、可直接复制使用,覆盖95%+日常开发场景,适合新手入门及老手快速查阅。 一、基础配置(首次使用必配)用于配置Git全局信息、个性化设置,仅需首次配置,后续可按需修改。 12345678910111213141516171819202122# 配置全局用户名(提交记录中显示的用户名)git config --global user.name "你的用户名"# 配置全局邮箱(与Git账号/代码托管平台账号绑定)git config --global user.email "你的邮箱地址"# 查看所有全局配置信息(验证配置是否生效)git config --list# 查看指定配置项(如单独查看用户名/邮箱)git config user.name # 查看用户名git config user.email # 查看邮箱# 配置默认文本编辑器(如vim,提交备注时使用)git config --global core.editor vi...
Springboot集成ES
Springboot集成ESES的Java客户端1. 早期阶段:Transport Client(基于 TCP) 出现版本:ES 早期版本(1.x ~ 6.x) 工作方式 基于 内部 TCP 协议 与 ES 节点通信 客户端必须与 ES 集群版本完全一致(主版本、次版本、修订版本) 优点 性能较高(长连接,无 HTTP 解析开销) 缺点 版本耦合度高,升级风险大 API 不统一,学习成本高 安全性弱(没有原生 HTTPS 支持) 状态 ES 7.x 标记为 废弃 ES 8.x 完全 移除 2. 中期阶段:High Level REST Client(HLRC) 出现版本:ES 5.0 引入,7.x 成为主力 工作方式 基于 HTTP/REST API 通信 通过封装好的 Java API 构造请求、解析响应 优点 版本兼容性更宽松(主版本一致即可) 支持 HTTPS 和各种认证方式 功能覆盖大部分 ES 操作 缺点 API 设计较老,非类型安全(依赖字符串和 Map) 构建复杂查询时容易出错 对 ES 8.x 新特性支持有限 状态 E...
ElasticSearch基本操作
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核心概念
ES核心概念 ElasticSearch是面向文档的,与关系型数据库对比如下 关系型数据库 es 数据库(databases) 索引(indices) 表(tables) types 行(rows) documents 字段(columns) fields es(集群)中包含多个索引,每个索引可以包含多个类型,每个类型下又包含多个文档,文档又包含多个字段。 物理设计: es把每个索引划分为多个分片,每个分片可以在集群的不同服务器间迁移,一个es节点就是一个集群。 逻辑设计: 一个索引当中,包含多个文档,可以通过索引->类型->文档ID索引到到某个具体的文档 文档 文档是索引和搜索数据的最小单位,以JSON格式存储,具备天然的灵活性,无需预先严格定义,但是文档中每个字段的类型非常重要,es会保存字段与类型间的映射 类型 类型是文档的逻辑容器,就像关系型数据库的表一样,类型对字段的定义称为映射,类型的概念逐渐被抛弃,高版本的es中一个索引只包含一个类型:_doc 索引 索引是类型的容器,或者说文档的集合,索引存储了映射类型的字...
Docker
Docker 学习笔记一、Docker 基础概念1.1 什么是 DockerDocker 是一款开源的容器化部署工具,基于 Go 语言开发,能够将应用程序及其依赖、运行环境、配置文件统一打包为镜像,实现一次构建、随处运行。 其核心解决了传统部署的痛点:环境不一致、依赖冲突、部署繁琐、资源占用高、迁移困难等问题,广泛应用于开发、测试、生产全流程。 1.2 核心优势 轻量高效:容器共享宿主机内核,无需完整操作系统,资源占用远低于虚拟机,启动速度秒级响应 环境一致:打包完整运行环境,彻底解决“本地能跑、服务器报错”的环境差异问题 便携可移植:镜像可跨系统、跨服务器迁移,部署流程标准化、自动化 隔离性强:容器之间资源、进程、网络相互隔离,互不干扰 弹性扩展:配合 Compose、K8s 可快速实现服务扩容、缩容与集群部署 1.3 核心四大组件 Docker 引擎(Docker Engine):核心服务,包含守护进程、API、命令行工具,是 Docker 运行的基础 镜像(Image):只读的应用模板,包含应用、依赖、环境、配置,是创建容器的模板,不可修改 容器(Conta...
Linux
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扩展功能
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核心功能
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快速入门
1.快速入门大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是MybatisPlus。 当然,MybatisPlus不仅仅可以简化单表操作,而且还对Mybatis的功能有很多的增强。可以让我们的开发更加的简单,高效。 通过学习MybatisPlus,我们要达成下面的目标: 能利用MybatisPlus实现基本的CRUD 会使用条件构建造器构建查询和更新语句 会使用MybatisPlus中的常用注解 会使用MybatisPlus处理枚举、JSON类型字段 会使用MybatisPlus实现分页 为了方便测试,我们先创建一个新的项目,并准备一些基础数据。 1.1.环境准备复制课前资料提供好的一个项目到你的工作空间(不要包含空格和特殊字符) 接下来,要导入两张表,在课前资料中已经提供了SQL文件 最后,在application.yaml中修改jdbc参数为你自己的数据库参数: 1234567891011s...
Redis原理-内存回收
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...