自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 Redis 内部的阻塞式操作以及应对的方法。

Redis 内部的阻塞式操作以及应对的方法主线程阻塞Redis 实例有哪些阻塞点和客户端交互时的阻塞点和磁盘交互时的阻塞点主从节点交互时的阻塞点集群实例交互时的阻塞点主线程阻塞如果在主线程上执行的操作消耗的时间太长,就会引起主线程阻塞。但是,Redis 既有服务客户端请求的键值对增删改查操作,也有保证可靠性的持久化操作,还有进行主从复制时的数据同步操作,等等。操作这么多,究竟哪些会引起阻塞Redis 实例有哪些阻塞点客户端:网络 IO,键值对增删改查操作,数据库操作磁盘:生成 RDB 快照,记录

2022-02-08 16:29:43 1281

原创 ES详解 - 索引:索引管理详解

索引管理索引管理的引入索引的格式索引管理操作创建索引修改索引打开/关闭索引删除索引查看索引索引管理的引入PUT /customer/_doc/1{ "name": "John Doe"}而这个index实际上已经自动创建了它里面的字段(name)的类型。我们不妨看下它自动创建的mapping:{ "mappings": { "_doc": { "properties": { "name": { "type": "text",

2022-01-27 17:19:33 3140

原创 数据库NF

数据库范式范式第一范式(1NF)第二范式(2NF)巴斯-科德范式(BCNF)第四范式第五范式反三范式范式目前关系数据库有六种范式:  第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。1NF:字段不可分;原子性 字段不可再分,否则就不

2022-01-13 20:26:39 1386

原创 Redis 作为消息队列

Redis 作为消息队列消息队列消息保序重复消息处理消息可靠性保证List 作为消息队列Streams 的消息队列、消息队列消息队列在存取消息时,必须要满足三个需求,分别是消息保序、处理重复的消息和保证消息可靠性。消息保序虽然消费者是异步处理消息,但是,消费者仍然需要按照生产者发送消息的顺序来处理消息,避免后发送的消息被先处理了。对于要求消息保序的场景来说,一旦出现这种消息被乱序处理的情况,就可能会导致业务逻辑被错误执行,从而给业务方造成损失。重复消息处理消费者从消息队列读取消息时,有时会因为网

2022-01-13 20:13:51 2788 1

原创 高并发之限流

高并发之限流

2022-01-12 21:58:05 730

原创 Redis持久化(2) RDB

Redis RDB 内存快照

2022-01-12 21:33:14 267

原创 MybatisPlus分表

mybatisPlus分表操作

2022-01-11 22:37:03 3310 2

原创 elasticsearch Analyzer

elasticsearch文本分析分析器a. 在创建索引的时候需要用到分词器,在使用字符串搜索的时候也会用到分词器,并且这两个地方要使用同一个分词器,否则可能会搜索不出来结果。b. 分词器(Analyzer)的作用是把一段文本中的词按规则取出所包含的所有词,对应的是Analyzer类,这是一个抽象类(public abstract class org.apache.lucene.analysis.Analyzer),切分词的具体规则是由子类实现的,所以对于不同的语言规则,要有不同的分词器。

2022-01-11 22:18:33 1310

原创 Redis的持久化(1) AOF

Redis持久化1AOF

2022-01-08 16:07:46 535

原创 单线程`的Redis

`单线程`的Redis IO模型Redis的单线程为什么使用单线程多线程的开销单线程 Redis 为什么那么快redis的多线程redis6.0版本的多线程Redis的单线程Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。为什么使用单线程多线程的开销我们刚开始增加线程数时,系统吞吐率会增加,但是,再进一步增加

2022-01-08 15:43:14 306

原创 elasticsearch全文检索流程

这里写目录标题elasticsearch全文检索流程索引过程创建索引获得原始文档创建文档对象分析文档创建索引查询索引elasticsearch全文检索流程索引过程索引过程,对要搜索的原始内容进行索引构建一个索引库,索引过程包括:确定原始内容即要搜索的内容→采集文档→创建文档→分析文档→索引文档。搜索过程,从索引库中搜索内容,搜索过程包括:用户通过搜索界面→创建查询→执行搜索,从索引库搜索→渲染搜索结果。索引 从关系数据库中、互联网上、文件系统采集源数据(要搜索的目标信息),源数据的来源是很广

2022-01-06 23:52:48 1698

原创 Redis得底层数据结构

这里写目录标题Redis得底层数据结构Redis 的底层数据结构键和值用什么组织Hash表集合类型数据操作效率数据结构得时间复杂度不同操作的复杂Redis得底层数据结构Redis 的底层数据结构简单来说,Redis 的底层数据结构一共有6种,分别是简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组String 类型的底层实现只有一种数据结构,也就是简单动态字符串。而 List、Hash、Set 和 Sorted Set 这四种数据类型,都有两种底层实现结构。通常情况下,我们会把这四种类型称

2022-01-06 23:35:33 853

原创 Elasticsearch简介与安装

文章目录Elasticsearch 安装与测试1 什么是elasticsearch2 Elasticsearch分布式搜索引擎的总体框架图3 elasticsearch 特性4 elasticsearch 安装Elasticsearch 安装与测试1 什么是elasticsearchElasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据, 它不但稳定、可靠、快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的,它可以用于全文搜索,结构化搜索以及

2022-01-05 23:04:44 585

原创 Redis常用命令

Redis常用命令

2022-01-05 22:36:58 306

原创 Redis入门

为什么使用Redis

2022-01-04 22:33:06 734

原创 关于自己项目Jackson 的一个bug

废话不多说,先上有bug的代码测试环境和预发布环境都不会出现,但是到线上就会出现localdateTime 无法序列化的问题,需要加入彼得依赖,经过排查,项目中是含有这个依赖的,并没有版本冲突,线上出现这个问题也不是一直出现,是偶尔出现,作为开发,大家懂的都懂,要多难受有多难受,当时服务是用docker启动的,当我们把出现问题的jar包拿出来在另一台服务器上运行时,很好!!没有一点问题,奔溃吗,亲爱的小伙伴,然后我们看objectMapper这个bean也是加载过的,绝望吗。。。每次出现这个问题就每次

2021-11-20 16:13:57 616

原创 关于这次线上es 出现问题的一些解决流程以及`猜想`

此次es 出现问题是在阿里云 重启机器之后出现的问题,首先运维那边重启了机器,在接近下午的时候,整个es 的生态圈出现了问题,出现了data to large 的问题,dump 被填满 一直以为是内存方面的问题,调整各种参数 发现data to large 会一直出现,实际证明我是错的后续 通过监控得到 发现gc 的趋势不对 ,经过查看 原先使用的CMS 换成了 G1  这里确实是个问题 ,所以我将垃圾回收器重新换回了CMS 10分钟后,再一次出现了 data to large ,整个es 的d

2021-07-08 15:44:56 410

原创 拦截输出每次请求的花费时间

public class TimeInteceptor implements HandlerInterceptor {private static Logger logger = LoggerFactory.getLogger(TimeInteceptor.class);@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws

2020-11-16 10:55:18 136

原创 quartz 定时任务(MethodInvokingJobDetailFactoryBean)

<beans:bean id=“contentInfoOnlineTaskTrigger”class=“org.springframework.scheduling.quartz.CronTriggerFactoryBean”><beans:property name=“jobDetail”><beans:ref bean=“contentInfoOnlineTaskJob” /></beans:property><beans:property

2020-11-16 10:53:23 541

原创 Quartz使用

Quartz是要做定时任务的调度,设置好触发时间规则,以及相应的任务(Job)即可。Quartz使用导入依赖<dependencies> <!--Quartz任务调度--> <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --> <dependency> <groupId>org.quartz-scheduler&l

2020-08-23 17:57:52 122

原创 MVC前端控制器和后端控制器

作为一个MVC框架,首先要解决的是:如何能够收到请求!所以MVC框架大都会设计一款前端控制器,选型在 Servlet 或 Filter两者之一,在框架最前沿率先工作,接收所有请求。此控制器在接收到请求后,还会负责springMVC的核心的调度管理,所以既是前端又是核心。<servlet> <servlet-name>mvc</servlet-name> <servlet-class>org.springframework.web.s

2020-08-23 17:42:21 1331

原创 AOP注解

import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.

2020-08-23 17:37:32 218

原创 注解开发

用于替换自建类型组件的 <bean…>标签;可以更快速的声明bean* @Service 业务类专用 @Repository dao实现类专用 @Controller web层专用* @Component 通用* @Scope 用户控制bean的创建模式// @Service说明 此类是一个业务类,需要将此类纳入工厂 等价替换掉 <bean class="xxx.UserServiceImpl">// @Service默认beanId == 首字母小

2020-08-23 17:33:26 135

原创 java中事务的属性

isolation 隔离级别隔离级别由低到高为:read-uncommited < read-commited < repeatable-read < serialized-read特性 * 安全性:级别越高,多事务并发时,越安全。因为共享的数据越来越少,事务间彼此干扰减少。* 并发性:级别越高,多事务并发时,并发越差。因为共享的数据越来越少,事务间阻塞情况增多。并发问题propagation传播行为当涉及到事务嵌套(Service调用Service)时,可以设置:

2020-08-23 17:23:02 273

原创 AOP(面向切面)

Spring的AOP编程即是通过动态代理类为原始类的方法添加辅助功能。引入AOP相关依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.6.RELEASE</version></dependency><depende

2020-08-23 17:12:50 148

原创 mapper.xml存放在resources以外路径中的读取问题

在pom.xml文件最后追加< build >标签,以便可以将xml文件复制到classes中,并在程序运行时正确读取。<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xm

2020-08-23 16:51:16 971

原创 c3p0连接池

c3p0连接池xml配置文件<?xml version="1.0" encoding="UTF-8"?><c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/shopping?useSSL

2020-08-10 11:38:26 117

原创 mysql基本操作

Mysql查找数据基本查询SELECT 列名 FROM 表名 列的别名 SELECT 列名 AS '' FROM 表名 查询结果去重 SELECT DISTINCT 列名 FROM 表名排序查询SELECT 列名 FROM 表名 ORDER BY 排序列 排序规则 ASC升序排序 DESC 降序排序条件查询SELECT 列名 FROM 表名 WHERE 条件分支结构查询 CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 WHEN 条

2020-07-08 08:51:18 185

原创 控制台输入转nextline

int n = Integer.parserInt(要转换的字符串);

2020-07-04 11:20:12 111

原创 多线程TCP网络程序

服务端`public class Example{ public static void main(String[] args) throws Exception { new TCPServer().listen(); }}class TCPServer { private static final int PORT = 7788; public void listen() throws Exception { ServerSocket serverSocket =new Serve

2020-06-13 09:30:48 263

原创 关于java中String ,StringBuffer ,StringBuilder三者的区别

首先说说关于三者运行速度的区别在这方面运行速度快慢为:StringBuilder > StringBuffer > String在线程安全上 在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的 如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有synchronized关键字,所以可以保证线程是安全的,但StringBuilder的方法则没有该关键字,所以不能保证线程安全,有可能会出现一

2020-06-02 20:54:07 128

原创 读取文件夹下所有文件,打印文件名

private static void show(File dir,int level) { File[] lists =dir.listFiles(); for (File list : lists) { for (int i = 0; i < level; i++) { System.out.print(" "); } System.out.println(list); if (list.isDirectory()) { show(list,l

2020-06-01 16:49:44 225

原创 升序排序

for (int i = 0; i < arr.length; i++) { for (int j = i; j < arr.length; j++) { if(arr[i] > arr[j]) { temp =arr[i]; arr[i] =arr[j]; arr[j] =temp; } } }

2020-06-01 16:47:36 430

原创 接口与多态

接口关键字:interface格式:interface 接口名 {成员变量成员方法}2.3 Java中类【遵从】接口的格式关键字: implements格式: class A implements B { } A类是B接口的实现类 A类遵从B接口一个类可以同时遵从多个接口,接口可以继承abstract类遵从接口abstract修饰的方法1. 没有方法体 ...

2020-05-07 20:45:32 88

原创 面向对象(2)

面向对象构造方法作用用于在开发过程中创建对象使用,创建对象目前的格式new 类名(有可能使用到的参数);类名(有可能使用到的参数); 这就是构造方法 Constructor初始化当前创建对象中的成员变量数据!!!格式格式:public 类名(所需初始化参数列表) {初始化语句;}细节:1. 构造方法的名字必须是类名,并且其他方法的名字不能是类名 2. 构造方法没有返回值...

2020-04-28 21:11:11 114

原创 多类合作以及匿名对象,初识继承

生活中的面向对象需求: 我想吃烤羊排 找一个烧烤店吃 1. 选一个店铺,私烤者馕坑烤肉 2. 找一个座位,点餐,馕,烤羊肉串,一斤羊排,啤酒2瓶 3. 等 4. 吃 5. 结账走人 自己做着吃 1. 准备材料 盐滩羊羊排2斤,葱姜蒜,洋葱,孜然粉,烧烤料,辣椒面 2. 羊排切小段,葱姜蒜水,盐,洋葱,腌制30分钟 3. 烤箱预热190度 5分钟...

2020-04-28 08:19:13 103

原创 数组操作

数组操作1. 数组地址转移问题【难点】public static void main(String[] args) { int[] arr1 = new int[10]; int[] arr2 = new int[10]; arr1[0] = 10; arr2[0] = 20; System.out.println("arr1[0]:...

2020-04-24 22:20:05 110

原创 数组初定义

案例int[] array = new int[10];/*赋值号左侧:int:告知编译器,这里创建定义的是一个int类型数组,有且只能保存int类型数据,保证数据类型一致化[]:1. 告知编译器,当前定义的数据类型是一个数组类型2. 数组名 array是一个【引用数据类型】array:1. 这里是一个数组名,操作数组的核心数据!!!就是一个变量名2. 数组名 array是...

2020-04-23 20:55:50 154

原创 方法返回值以及局部变量

方法1. 返回值【难点】1.1 从生活中找出什么是返回值餐馆吃饭 烤羊排 138一份 --> 声明 付款 138RMB --> 给予实际参数 厨师做好烤羊排之后,让服务员给你端上来 --> 厨师完成操作,给予的返回值ATM机取钱 取钱 1000RMB --> 调用方法 输入密码 --> 给予实际参数 密码正确,ATM给你1000RMB --&gt...

2020-04-22 21:57:19 254

原创 for break以及continue

for循环for (循环条件初始化 ; 循环条件判断 ; 循环条件变更 ) {// 循环体}for循环的优势:1. for之后的小括号内容,可读性更强 2. 可以通过for之后小括号,里面的内容大概推算出整个循环会执行多少次 3. for循环和一些特殊的数据关系非常紧密break语句代码中的功能是跳出循环结构或者switch case结构break关键字可以在循环过程中,当前...

2020-04-20 20:22:43 384

空空如也

空空如也

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

TA关注的人

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