自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (1)
  • 收藏
  • 关注

原创 递归及其使用

递归是指在函数的定义中使用函数自身的过程。简单来说,递归是通过将大问题分解为更小的子问题来解决问题的一种方法。递归函数在执行时会反复调用自身,直到达到某个终止条件。

2024-06-08 02:30:07 881

原创 使用JSON_EXTRACT匹配某个json类型字段中的某个具体字段

此外,还可以通过使用JSON_UNQUOTE函数来移除提取的结果中的引号,如果结果是一个字符串。在上面的例子中,我们使用JSON_EXTRACT函数从json_doc字段中提取了"employee"对象的"name"属性和"departments"数组的第一个元素。路径可以使用点号(.)来访问JSON对象的属性,也可以使用方括号([])来访问JSON数组的索引。需要注意的是,JSON_EXTRACT函数在MySQL 5.7版本之后才可用,并且需要在MySQL中启用JSON功能。

2024-05-27 22:50:36 705

原创 使用tkMapper时避免传入null值导致查询数据不符合预期

因此实际的SQL会导致一些不符合预期的数据被查出来,如果查询后执行的是更新操作,会带来脏数据;如果查询后执行的是删除操作,会带来误删除;如果这个删除还是个物理删除…那么有没有什么方法能够避免这个问题呢?

2024-05-27 22:24:09 519

原创 使用Optional和直接返回null,哪个更好?

在处理不确定是否能获得对象时,使用 Optional 类型要优于直接返回 null。通过使用 Optional,我们可以明确表示可能为空的情况,强制进行空值检查,并提供链式操作。这种方式提高了代码的可读性、可维护性和安全性。尽管 Optional 类型在处理可能为空的对象时有很多好处,但在使用时也需要谨慎。过度使用 Optional 可能会导致代码变得复杂,因此应根据具体情况合理使用。

2023-09-17 02:26:02 328

原创 基于Redisson使用自定义注解实现分布式锁

基于Redisson使用自定义注解来实现分布式锁,获取不到锁时等待指定时间,并在期间不断尝试获取锁

2023-08-01 18:18:46 443

原创 PageHelper分页失效,只能查出第一页

排查、解决PageHelper分页失效问题

2023-07-19 16:52:36 1547

原创 使用Hexo在Github上搭建个人博客

使用Hexo在Github上搭建个人博客

2023-05-18 21:30:11 454

原创 在Ubuntu 22.04 LTS Jammy Linux 系统上安装MySQL

本教程将展示使用命令终端在Ubuntu 22.04 LTS Jammy 上安装MySQL数据库服务器的简单步骤。

2023-05-17 17:34:40 1428

原创 Linux安装Jupyter并允许任意IP通过密码模式访问

Linux安装Jupyter并允许任意IP通过密码模式访问

2023-05-17 15:07:37 688

原创 CountDownLatch:Java中的同步工具

CountDownLatch是Java中的一个同步工具,它允许一个或多个线程等待其他线程完成它们的操作后再继续执行。CountDownLatch通常用于实现等待-通知机制,其中一个或多个线程等待其他线程完成它们的操作,然后再继续执行。在多线程编程中,CountDownLatch是一种非常有用的工具,可以帮助我们实现复杂的同步逻辑.。

2023-04-12 18:04:00 532

原创 cron表达式语法规则及常见示例

cron表达式是一种用于设置定时任务的语法规则。它由6个字段组成,分别表示秒、分、小时、日期、月份和星期几。每个字段都可以设置一个数字、一组数字(用逗号分隔)、一段数字范围(用短横线分隔)、通配符(表示任意值)或者特定的字符(如星期几的英文缩写)。

2023-04-09 21:11:42 6565

原创 大规模数据量下ES如何实现高性能检索?

ElasticSearch,是基于Lucene库的搜索引擎。它提供了一个分布式、多租户的全文搜索引擎,具有HTTP web接口和无模式JSON文档。根据DB引擎排名,Elasticsearch是最受欢迎的企业搜索引擎。ES的特点是分布式、高扩展以及近实时。那么,大规模数据量下ES是如何实现高性能检索的呢?回到我们的文章标题,ES是如何实现高性能模糊查询的呢?ES通过分词然后对每一个单词及其对应文档建立倒排索引,使得能够快速根据关键词找到对应文档id;

2023-02-28 23:11:57 2355 1

原创 parallelStream() 踩坑指南,出现null元素,输出list的size不符合预期

parallelStream()踩坑指南。使用parallelStream()时出现返回的List的size不符合预期,出现null元素,以及出现IndexOutOfBounds和NPE

2022-12-24 16:30:00 2430

原创 Spring MVC 源码分析

spring MVC 源码分析,围绕DispatcherServlet#doDispatch展开

2022-12-04 03:41:26 808

原创 MySQL中count(*)和information_schema.tables中的table_rows值不相同

前两天我还在高高兴兴地写了一篇文章《一条SQL查询出MySQL数据库中所有表的数据量大小》,心想这也太方便了,只用一条SQL就能统计出所有表的数据量,但没想到,最终还是翻车了。。。

2022-12-03 15:27:29 3738 2

原创 一条SQL查询出MySQL数据库中所有表的数据量大小

如何使用一条SQL语句查询出所有表的数据量呢?

2022-11-18 20:54:04 3099

原创 分布式事务之CP架构、AP架构解决方案

在分布式事务之CAP定理一文中,我们了解到一个分布式系统不可能同时满足数据一致性(consistency)、服务可用性(availability)、分区容错性(partition-tolerance)。现实情况下,我们面对的是一个不可靠的网络、有一定概率宕机的设备,这两个因素都会导致Partition,因而分布式系统实现中 P 是一个必须项,而不是可选项。对于分布式系统工程实践,CAP理论更合适的描述是:在满足分区容错的前提下,没有算法能同时满足数据一致性和服务可用性。

2022-11-10 11:38:54 4576

原创 分布式事务之BASE理论

在分布式事务之CAP定理一文中,我们了解到了分布式事务不可能同时实现Consistency、Availability 和 Partition-tolerance。Basically Available(基本可用);Soft state(软状态);Eventually consistent(最终一致性);BASE定理的核心思想:即使无法做到强一致性,但是每个应用可以根据自身的业务特定,采用合适的方式来达到最终一致性。

2022-11-10 00:58:26 336

原创 GET与POST的区别

GET和POST只是HTTP协议中的两种请求方式,而HTTP协议是基于TCP/IP的应用层协议,所以无论GET还是POST,用的都是同一个传输层协议,所以在传输上是没有区别的。

2022-11-09 17:18:12 493

原创 Undo Log、Redo Log、binlog与两阶段提交

在事务ACID与隔离级别一文中我们了解到,事务的Atomicity(原子性)是通过Undo Log来实现的。Undo Log其实就是在事务操作任何数据之前,先将要被覆盖的数据备份到Undo Log,然后才进行数据的修改。如果事务执行过程中出现了错误,或者用户执行了ROLLBACK操作,那么系统就可以根据Undo Log中备份的数据,将数据恢复到事务开始前的初始状态。Redo Log是InnoDB存储引擎特有的日志,位于引擎层;Redo Log 是一种物理日志,记录的是“在某个数据页上做了什么修改”;

2022-11-09 15:33:10 884

原创 分布式事务之CAP定理

分布式事务之CAP定理

2022-11-09 01:26:59 591

原创 事务ACID与隔离级别

事务ACID与隔离级别

2022-11-09 00:49:48 510

原创 MacOS安装FFmpeg

MacOS安装FFmpeg的两种方式

2022-11-01 00:11:29 3276

原创 使用tkmapper避免更新on update字段

在日常开发中,我们的MySQL数据库表都会有mtime字段,用来记录某条记录最后一次更新的时间,一般设置为on update,也就是这条记录有任何的变动,mtime字段的值就会自动更新。如何在不更新mtime的情况下,更新其他字段呢?

2022-10-17 15:54:04 531

原创 使用tkmapper更新某一列

有时候,想要update表中符合条件的记录中的某一列的值为一个指定值,如何使用tkmapper来操作呢?

2022-10-17 15:36:25 467

原创 使用Python的requests库发送SOAP请求,错误码415

使用Python的requests库发送SOAP请求

2022-09-26 21:02:23 2214

原创 硬件与固件的区别

硬件与固件的区别

2022-09-20 10:40:24 1627

原创 Elasticsearch倒排索引(二)深入Term Index

Term Index是一种对映射关系中的词语集合也就是Term Dictionary进行高效索引的数据结构。Term Index是以怎样的形式进行组织的呢?

2022-09-20 00:47:39 2022

原创 Python环境找不到vlc —— 要先安装VLC Media Player

Python环境找不到vlc —— 要先安装VLC Media Player

2022-09-19 18:17:52 2588

原创 conda list 与 pip list 命令的区别

1. `conda list`和`pip list`命令都是列出环境下所有已安装的包;2. `conda list`命令除了得到当前虚拟环境下的所有已安装的包,还会显示关联环境下的已安装的包;3. `pip list`命令只显示当前虚拟环境下的所有已安装的包;4. 当关联环境下有某个包,再用conda命令在其他虚拟环境下下载该包时,就会直接关联,无需下载;5. `pip list`命令得到的结果是`conda list`得到的结果的子集;

2022-09-19 18:11:24 8007 1

原创 Elasticsearch倒排索引(一)简介

关系数据库的索引大多是B-Tree结构,而ES使用倒排索引。倒排索引中的所有词语存储在词典中,每个词语又指向包含它的文档信息列表。在某些情况下,两种不同的数据索引方法决定了这两种产品在性能和速度上的差异。例如,在包含数亿数据的关系型数据表上执行最简单的计count查询时,关系型数据库可能需要几秒的响应时间。如果数据表的设计不合理,甚至可能拖垮整个数据库,影响其他数据服务;而ES可以在毫秒级别返回,该查询对整个集群的影响微乎其微。除此之外,ES建立在Lucene基础之上,与生俱来就能完成分词匹配,并且支持多种

2022-09-19 00:58:23 997

原创 我的创作纪念日 - 一周年 【2022-09-17】

创作一周年的一些感悟,与大家共勉

2022-09-17 11:23:25 312 5

原创 Python判断字符串相等

有时候两个字符串打印出来看着一样,但是判断却是`False`?如果两个字符串末尾有其他符号,比如回车`\n`,print的时候无法发现的有时候`==`判断是 `True` ,`is` 判断却是 `False`?这是因为两个字符串来自不同的内存块,内存地址不一样。`id() `函数用于获取对象的内存地址。

2022-09-16 17:22:13 14214

原创 NoSQL常用数据结构 LSM Tree 简介

LSM Tree 的全名是 Log Structured Merge Tree;顾名思义,LSM Tree是一种采用了日志追加写方式,有一定的结构,且会合并的树;LSM Tree的核心特点是:是一种分层,有序,面向磁盘的数据结构,其核心思想是充分利用磁盘批量的顺序写性能要远比随机写性能高出很多。...

2022-08-16 23:26:30 1218

原创 一文讲透Redis缓存穿透、缓存击穿与缓存雪崩

1. Redis缓存穿透:key对应的数据在缓存和数据库中都不存在;2. Redis缓存击穿:key对应的数据在缓存中不存在,在数据库中存在;3. Redis缓存雪崩:key对应的数据在数据库中存在,但在缓存中集中失效;......

2022-08-15 10:47:59 665

原创 一文读懂什么是布隆过滤器

1. 布隆过滤器(Bloom Filter)是1970年由布隆提出的。2. 它实际上是一个很长的二进制位数组和一系列随机映射函数。3. 布隆过滤器可以用于检索一个元素是否在一个集合中。4. 它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。...

2022-08-15 10:39:49 492

原创 Redis持久化RDB与AOF

1. 很多时候我们需要持久化数据,也就是将内存中的数据写⼊到硬盘⾥⾯,⼤部分原因是为了之后重⽤数据(⽐如重启机器、机器故障之后恢复数据),或者是为了防⽌系统故障⽽将数据备份到⼀个远程位置。2. Redis会单独fork一个与当前进程一模一样的子进程来进行持久化,这个子进程的所有数据(变量、环境变量、程序程序计数器等)都和原进程一模一样,会先将数据写入到一个临时文件中,待持久化结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程不进行任何的I/O操作,这就确保了极高的性能。3. redis.

2022-08-10 22:16:41 334

原创 ElasticSearch 之 文本搜索

1. 作为一款搜索引擎框架,文本搜索是其核心功能。2. ES在文本索引的建立和搜索过程中依赖两大组件,即Lucene和分析器。3. Lucene负责进行倒排索引的物理构建,分析器负责在建立倒排索引前和搜索前对文本进行分词和语法处理。...

2022-08-02 23:00:53 1184

原创 ElasticSearch 之 搜索辅助功能

俗话说“工欲善其事,必先利其器”。在介绍ES提供的各种搜索匹配功能之前,我们先介绍ES提供的各种搜索辅助功能。例如,为优化搜索性能,需要指定搜索结果返回一部分字段内容。为了更好地呈现结果,需要用到结果计数和分页功能;当遇到性能瓶颈时,需要剖析搜索各个环节的耗时;面对不符合预期的搜索结果时,需要分析各个文档的评分细节。...

2022-07-28 00:11:52 466

原创 ElasticSearch 之 数据类型

ElasticSearch的数据类型,包括keyword、text、数值、布尔、日期、数组、对象以及地理类型。

2022-07-27 23:16:46 2124

一幅灰度图.m

输入一幅图像,完美地输出其灰度直方图,绘图科学,美观,坐标清晰。

2019-06-07

空空如也

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

TA关注的人

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