自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

挑灯日记 记录自己

有点非主流的博客名,记录自己最真实的成长。

  • 博客(106)
  • 收藏
  • 关注

原创 ElasticSearch学习笔记(二)文档操作、RestHighLevelClient的使用

ElasticSearch学习笔记(一)倒排索引、ES和Kibana安装、索引操作。

2024-06-20 20:48:04 1310

原创 ElasticSearch学习笔记(一)倒排索引、ES和Kibana安装、索引操作

为此,IK分词器提供了强大的停用词功能,让我们在索引时就直接忽略停用词汇表中的内容。但根据关键词查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的关键词,是。倒排索引结构虽然不复杂,但是一旦数据结构改变(比如改变了分词器),就需要重新创建倒排索引,这又是无法接受的。先查询倒排索引,再查询倒排索引,但是无论是词条、还是文档id都建立了索引,查询速度非常快,而无需全表扫描。但由于网络问题,拉取失败了。则相反,是先找到用户要搜索的词条,根据词条得到保存词条的文档的id,然后根据id获取文档,是。

2024-06-20 20:41:45 1018

原创 RabbitMQ学习笔记(二)SpringAMQP的使用、消息转换器

RabbitMQ学习笔记(一)RabbitMQ部署、5种队列模型AMQP(Advanced Message Queuing Protocol),是一个应用程序之间传递业务消息的标准高级消息队列协议。基于此协议的客户端与消息中间件可传递消息,并不受不同的开发语言等条件的限制。SpringAMQP是基于AMQP协议定义的一套RabbitMQ模板,并且利用SpringBoot对其实现了自动装配,使用起来非常方便。。自动声明队列、交换机及其绑定关系基于注解的监听器模式,异步接收消息。

2024-06-04 12:00:00 1189

原创 RabbitMQ学习笔记(一)RabbitMQ部署、5种队列模型

在该案例中,支付服务是事件发布者(Publisher),在支付成功后只需要发布一个支付成功的事件(Event),事件中带上订单id。但不支持并发消费,不支持多个消费者共同消费一个队列,因为一旦消息被一个消费者接收,它就会从队列中删除。这种模型适用于根据消息内容将消息路由到不同队列的场景,例如按标签或关键字分发和处理不同的任务。这种模型支持多个消费者同时处理同一个队列中的消息,实现了并发消费,具有更高的消息吞吐量。,被平均分配给不同的消费者。同时,当一个消费者正在处理一个消息时,它不能接收新的消息。

2024-06-04 07:00:00 956

原创 Docker学习笔记(二)Dockerfile自定义镜像、DockerCompose、Docker私有镜像仓库

Docker学习笔记(一)安装Docker、镜像操作、容器操作、数据卷操作常见的镜像在DockerHub中就能找到,但是自己写的项目如果也想构建成一个镜像,就必须自定义镜像。1)现在编写了一个简单的SpringBoot项目,本地启动后在浏览器访问结果如下:随后将该项目打成可执行jar包。2)在虚拟机创建一个空目录,将上面的可执行jar包、JDK安装包上传至该目录下;3)在目录下新建一个Dockerfile# 指定基础镜像# 配置环境变量,JDK的安装目录# 拷贝jdk和java项目的包。

2024-05-25 12:41:43 669

原创 Docker学习笔记(一)安装Docker、镜像操作、容器操作、数据卷操作

微服务虽然具备各种各样的优势,但服务的拆分通常会给部署分布式系统中,依赖的组件非常多,不同组件之间部署时可能会产生一些冲突;在数百上千台服务器中重复部署,每台服务器的环境不一定一致,可能会遇到各种问题。在上面的案例中,修改nginx的html页面时,需要进入nginx内部,并且因为没有编辑器,修改文件内容显示很麻烦。不便于修改:要修改容器内的文件,需要进入容器内部;数据不可复用:在容器内的修改对外是不可见的,所有修改对新创建的容器是不可复用的;

2024-05-11 20:21:26 678 3

原创 SpringCloud学习笔记(三)Nacos配置管理与热更新、Feign远程调用替代RestTemplate

SpringCloud学习笔记(一)微服务介绍、服务拆分和RestTemplate远程调用、Eureka注册中心SpringCloud学习笔记(二)Ribbon负载均衡、Nacos注册中心、Nacos与Eureka的区别类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解。

2024-04-30 13:18:17 874 1

原创 SpringCloud学习笔记(二)Ribbon负载均衡、Nacos注册中心、Nacos与Eureka的区别

Bean。

2024-04-30 09:01:19 1538 1

原创 SpringCloud学习笔记(一)微服务介绍、服务拆分和RestTemplate远程调用、Eureka注册中心

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案优点:拆分粒度更小、服务更独立、耦合度更低缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。

2024-04-29 09:15:20 1352 2

原创 MyBatisPlus详解(四)通用枚举、JSON类型处理器、配置加密、自动分页插件与工具类

MyBatisPlus详解(一)项目搭建、@TableName、@TableId、@TableField注解与常见配置MyBatisPlus详解(二)条件构造器Wrapper、自定义SQL、Service接口MyBatisPlus详解(三)lambdaQuery、lambdaUpdate、批量新增、代码生成、Db静态工具、逻辑删除。

2024-04-24 14:33:33 992 4

原创 MyBatisPlus详解(三)lambdaQuery、lambdaUpdate、批量新增、代码生成、Db静态工具、逻辑删除

MyBatisPlus详解(一)项目搭建、@TableName、@TableId、@TableField注解与常见配置MyBatisPlus详解(二)条件构造器Wrapper、自定义SQL、Service接口。

2024-04-22 21:45:00 4605

原创 MyBatisPlus详解(二)条件构造器Wrapper、自定义SQL、Service接口

MyBatisPlus详解(一)项目搭建、@TableName、@TableId、@TableField注解与常见配置在单元测试,这种写法其实也是不好的,因为SQL语句最好都维护在持久层,而不是业务层。为此,MyBatis提供了自定义SQL功能,即利用Wrapper构建复杂的where条件,然后自己定义SQL语句剩余的部分。也就是说,自己定义,利用Wrapper构建。

2024-04-21 19:39:50 1738

原创 MyBatisPlus详解(一)项目搭建、@TableName、@TableId、@TableField注解与常见配置

为了简化或省略单表的CRUD开发工作,国内使用较多的一个组件是MyBatisPlus。MyBatisPlus不仅可以简化单表操作,还对MyBatis的功能有很多的增强,可以让开发更加简单、高效。因此,当自定义的Mapper接口继承该基础的BaseMapper接口。

2024-04-21 12:19:06 1562

原创 再探Java为面试赋能(三)Java基础知识(三)抽象类和接口;berak、continue和return;switch;volatile;Java基本数据类型;值传递和引用传递;++i与i++

再探Java为面试赋能(一)Java基础知识(一)变量初始化顺序、构造方法、clone方法再探Java为面试赋能(二)Java基础知识(二)反射机制、Lambda表达式、多态。

2024-04-20 23:48:40 1157

原创 Redis从入门到精通(二十二)Redis原理之数据结构、网络模型、通心协议、内存回收

如上图所示,当用户应用程序需要读取硬件上的数据时,会通过接口向内核申请读取数据,而内核需要等到驱动程序从硬件上读取数据。当从硬件上加载到数据后,内核会将数据写入到内核空间的缓存区,然后再将数据拷贝到用户空间的缓存区,最后返回给应用程序。try {// 1.建立连接// 2.获取输出流、输入流// 3.获取授权 auth 123321// 4.测试异常 authaaa 123321// 5.测试数字 hset user name Jack age 21。

2024-04-20 10:53:23 1052

原创 Redis从入门到精通(二十一)Redis最佳实践(二)mset、pipeline、慢查询优化、内存划分

批处理优化:命令执行流程、mset、Pipeline、集群下的批处理服务器端优化:持久化配置、慢查询优化、命令及安全配置、内存划分和内存配置、集群or主从

2024-04-18 14:00:00 1028

原创 Redis从入门到精通(二十)Redis最佳实践(一)优雅的Key结构、拒绝BigKey

分析RDB快照文件,全面分析内存使用情况。,在raw模式下内存空间不是连续的,而是采用一个指针指向了另外一段内存空间,访问的时候性能也就会受到影响,还有可能产生内存碎片。假设有一个hash类型的Key,其有10万对field和value,field是自增id,那这个Key存在什么问题?:对BigKey执行读请求时,少量的QPS就可能导致带宽使用率被占满,导致Redis实例,乃至所在物理机变慢;BigKey内存占用较多,删除这样的Key也需要耗费很长时间,从而导致Redis主线程阻塞,引发一系列问题。

2024-04-18 09:46:55 1105

原创 Redis从入门到精通(十九)多级缓存(四)Nginx共享字典实现本地缓存

Redis从入门到精通(十六)多级缓存(一)Caffeine、JVM进程缓存Redis从入门到精通(十七)多级缓存(二)Lua语言入门、OpenResty集群的安装与使用Redis从入门到精通(十八)多级缓存(三)OpenResty请求参数处理、Lua脚本查询Redis和Tomcat。

2024-04-16 19:17:10 861

原创 Redis从入门到精通(十八)多级缓存(三)OpenResty请求参数处理、Lua脚本查询Redis和Tomcat

Redis从入门到精通(十六)多级缓存(一)Caffeine、JVM进程缓存Redis从入门到精通(十七)多级缓存(二)Lua语言入门、OpenResty集群的安装与使用。

2024-04-16 08:45:07 1070

原创 Redis从入门到精通(十七)多级缓存(二)Lua语言入门、OpenResty集群的安装与使用

多级缓存(二)Lua语言入门、OpenResty集群的安装、配置前端ajax请求反向代理至OpenResty集群。

2024-04-14 06:00:00 961

原创 Redis从入门到精通(十六)多级缓存(一)Caffeine、JVM进程缓存

多级缓存(一)多级缓存介绍、Caffeine、JVM进程缓存

2024-04-13 14:00:00 1210

原创 Redis从入门到精通(十五)Redis分布式缓存(三)Redis分片集群的搭建和原理分析

Redis分布式缓存(三)Redis分片集群的搭建和原理分析

2024-04-13 06:00:00 840

原创 Redis从入门到精通(十四)Redis分布式缓存(二)Redis哨兵集群的搭建和原理分析

Redis分布式缓存(二)Redis哨兵集群的搭建和原理分析

2024-04-12 20:16:38 1130

原创 Redis从入门到精通(十三)Redis分布式缓存(一)RDB和AOF持久化、Redis主从集群的搭建与原理分析

Redis分布式缓存(一)Redis的RDB、AOF持久化原理,Redis主从集群的搭建和原理分析。

2024-04-12 06:00:00 1261

原创 Redis从入门到精通(十二)Redis实战(九)GEO查询附近商户、BitMap用户签到和统计、HLL的UV统计

Redis实战(九):使用GEO实现附近商户查询功能;使用BitMap实现用户签到和统计功能;使用HLL实现UV统计功能。

2024-04-11 18:57:00 1026

原创 Redis从入门到精通(十一)Redis实战(八)关注、共同关注和Feed流

Redis实战(八):使用Redis实现用户关注和取消关注、共同关注以及Feed流功能。

2024-04-10 18:54:18 1154

原创 Redis从入门到精通(十)Redis实战(七)达人探店、点赞与点赞排行榜

Redis实战(七):新增探店笔记、查看探店笔记、点赞功能、点赞排行榜。

2024-04-10 06:00:00 1035

原创 再探Java为面试赋能(二)Java基础知识(二)反射机制、Lambda表达式、多态

Java基础(二)反射机制、Lambda表达式、多态

2024-04-09 06:00:00 1184

原创 Redis从入门到精通(九)Redis实战(六)基于Redis队列实现异步秒杀下单

Redis实战(六):分布式锁-Redisson:Redission锁重试、WatchDog机制、MutiLock原理秒杀优化:异步秒杀下单Redis消息队列:基于List、PubSub、Stream、消费者组的消息队列,基于Stream的消息队列实现异步秒杀下单。

2024-04-08 06:00:00 1308

原创 Redis从入门到精通(八)Redis实战(五)分布式锁误删与原子性问题、Redisson

Redis实现(五):分布式锁的误删问题、分布式锁的原子性问题、Redisson。

2024-04-07 06:00:00 766

原创 Redis从入门到精通(七)Redis实战(四)库存超卖、一人一单与Redis分布式锁

Redis实战(四)库存超卖和一人一单:库存超卖问题及其解决、一人一单需求、Redis分布式锁。

2024-04-06 06:00:00 1245 1

原创 Redis从入门到精通(六)Redis实战(三)优惠券秒杀

Redis实战(三)优惠券秒杀:添加普通优惠券、添加秒杀优惠券、实现秒杀下单。

2024-04-05 15:09:29 877

原创 Redis从入门到精通(五)Redis实战(二)商户查询缓存

Redis实现(二):缓存介绍、查询商户信息的传统做法、查询商户信息添加Redis缓存、数据一致性问题及其解决方案、缓存穿透问题及其解决方案、缓存击穿问题及其解决方案。

2024-04-04 22:44:57 1020 2

原创 Redis从入门到精通(四)Redis实战(一)短信登录

Redis实战(一)短信登录:基于session实现短信登录、基于Redis实现短信登录。

2024-04-03 10:06:48 816

原创 Redis从入门到精通(三)Jedis客户端、SpringDataRedis客户端

在上一章【Redis从入门到精通(二)Redis的数据类型和常见命令介绍】中,学习了Redis的五种基本数据类型,即String、Hash、List、Set、SortedSet类型,及其常用的命令。这一节学习Redis的两种Java客户端:Jedis和SpringDataRedis。在上面的案例中,方法的两个参数的类型均为Object,在写入Redis之前会把Object序列化为字节形式(默认采用JDK序列化),取出时又会反序列化。缺点比较明显:可读性差、内存占用较大。

2024-04-02 06:00:00 1014

原创 再探Java为面试赋能(一)Java基础知识(一)变量初始化顺序、构造方法、clone方法

且在任意方法(包括构造方法)被调用之前先进行初始化。成员变量的初始化工作可以在许多不同的代码块中来完成,比较常见的是静态代码块和构造方法。

2024-04-01 06:00:00 724

原创 Redis从入门到精通(二)Redis的数据类型和常见命令介绍

在上一节【Redis从入门到精通(一)Redis安装与启动、Redis客户端的使用】中,学习了Redis的基本特点与优势,并比较了关系型数据库与非关系型数据库的区别;然后在Linux系统上安装了最新版本的Redis,并使用多种方式成功启动;最后学习了Redis的三种客户端,即命令行客户端、图形化桌面客户端,以及编程客户端。这一节学习Redis的五种基本数据类型及其常见命令。

2024-03-31 06:00:00 1044

原创 Redis从入门到精通(一)Redis安装与启动、Redis客户端的使用

Redis是一种键值型的NoSQL数据库。键值型NoSQL其中,键值型是指Redis中存储的数据都是以key-value对的形式存储的,key只能是字符串,而value的形式多种多样,可以是字符串、数值、json等。

2024-03-30 17:52:21 1760

原创 MyBatis3源码深度解析(二十七)MyBatis整合Spring框架

通常情况下,我们并不会单独使用MyBatis框架,而是与Spring、SpringBoot等框架进行整合。MyBatis框架与Spring框架整合需要使用mybatis-spring模块。整合后,MyBatis中的Mapper动态代理对象会作为Spring框架的Bean注册到Spring容器中。

2024-03-29 06:00:00 1223

原创 MyBatis3源码深度解析(二十六)级联映射与关联查询(三)懒加载的使用与实现原理

上一节【MyBatis3源码深度解析(二十五)级联映射与关联查询(二)级联映射的实现原理】详细解读了MyBatis级联映射的实现原理,在使用外部Mapper的方式实现级联映射时,会为关联的Java实体对象执行一次额外的查询。但在一些场景下,可能会需要按需加载。例如查询用户信息时,不需要立刻查询用户关联的订单信息,而是在调用订单信息的Getter方法时,才执行订单信息的查询操作。MyBatis提供了懒加载机制来实现这种需求,这种方式能够在一定程度上减少数据库的IO次数,提升系统性能。

2024-03-28 09:35:50 983 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除