MySQL-InnoDB-Change Buffer

2022-11-10
阅读 5 分钟
1.3k
change buffer是一种特殊的数据结构,当缓冲池(buffer pool)中没有辅助索引页时,它会缓存对这些页的更改。缓冲的更改可能来自 INSERT 、 UPDATE 或DELETE操作(DML),稍后当其他读操作将页面加载到缓冲池中时,将合并这些更改。
封面图

Caffeine(2):深入解密来自未来的缓存

2021-11-15
阅读 9 分钟
2.6k
读这篇文章之前希望你能好好的阅读: 你应该知道的缓存进化史 和 如何优雅的设计和使用缓存? 。这两篇文章主要从一些实战上面去介绍如何去使用缓存。在这两篇文章中我都比较推荐Caffeine这款本地缓存去代替你的Guava Cache。本篇文章我将介绍Caffeine缓存的具体有哪些功能,以及内部的实现原理,让大家知其然,也要知其...
封面图

Caffeine(1):一个现代的缓存设计方案

2021-11-15
阅读 4 分钟
2.1k
缓存是提升性能的通用方法,现在大多数的缓存实现都使用了经典的技术。这篇文章中,我们会发掘 Caffeine 中的现代化的实现方法。Caffeine 是一个开源的 Java 缓存库,它能提供高命中率和出色的并发能力。期望读者们能被这些想法激发,进而将它们应用到任何你喜欢的编程语言中。
封面图

GeoHash(2)-实现篇

2021-11-05
阅读 13 分钟
2k
GeoHash(2)-实现篇兄弟篇:GeoHash(1)-理论篇。一、前言本篇介绍采用Java实现GeoHash算法,若有任何错误或建议,望不吝赐教,不胜感激。二、 实现完整代码见:GitHub先罗列下实现的功能:将经纬度转换为二进制编码,见 getBinary函数。将二进制编码转换为base32编码,见getBase32函数。(通用法)根据二进制编码、方向获...
封面图

GeoHash(1)-理论篇

2021-11-05
阅读 4 分钟
1.9k
突然想到当年做图像遇见一个问题:给定一个视频中连续的三千帧,但是已经乱序,告诉你第一帧,将这三千帧进行排序。遍历图像的所有像素点同样不可取,当时的解决方案是利用感知哈希计算出所有图像的指纹,接着利用明氏距离计算距离第一张最近的图像作为第二张,然后计算距离第二张最近的作为第三张,以此类推。
封面图

Spring(2)-AOP简介

2021-10-13
阅读 4 分钟
2.5k
我们先回顾一下OOP:Object Oriented Programming,OOP作为面向对象编程的模式,获得了巨大的成功,OOP的主要功能是数据封装、继承和多态。
封面图

分布式锁(5)-MLock使用介绍(自己实现,基于redis,适用于真实项目)

2021-10-11
阅读 3 分钟
3.4k
分布式锁 MLock 使用介绍分布式锁 MLock gitee地址分布式锁 MLock github地址系列文章链接:分布式锁(1)-分布式锁简介分布式锁(2)-基于Redis的实现分布式锁(3)-Redisson实现分布式锁(4)-基于Mysql实现分布式锁(5)-MLock使用介绍(自己实现,基于redis,适用于真实项目)1.基于使用java+redis实现了常用的分布式锁,提供注...
封面图

spring(1)-ApplicationContextAware详解

2021-10-08
阅读 9 分钟
6.6k
Aware本义就是"自动的",顾名思义spring给我们自动做了些事情。spring有很多以Aware结尾的类,有EnvironmentAware、ApplicationContextAware、MessageSourceAware等。
封面图

算法(7)-差分数组

2021-08-31
阅读 2 分钟
8.3k
如果给你一个包含5000万个元素的数组,然后会有频繁区间修改操作,那什么是频繁的区间修改操作呢?比如让第1个数到第1000万个数每个数都加上1,而且这种操作时频繁的。
封面图

Java注解学习1-Java Annotation认知(包括框架图、详细介绍、示例说明)

2021-08-18
阅读 13 分钟
12.5k
网上很多关于Java Annotation的文章,看得人眼花缭乱。Java Annotation本来很简单的,结果说的人没说清楚;弄的看的人更加迷糊。
封面图

图片下载跨域问题、图片展示缓存问题

2021-08-13
阅读 2 分钟
7.6k
最近在公司搬砖,遇到一个前端问题,可难为死我这个CRUD仔了。问题1点击下载图片的时候,报下面这种跨域的错误, {代码...} 问题是我们的图片服务器已经配置了CORS规则问题2展示的图片的时候,明明图片内容已经变化了,但是展示出来的图片还是原来的图片。解决:在项目中显示图片需要加时间戳,上传图片修改图片后,如果...
封面图

算法(6)-数组异或操作(异或性质)

2021-05-07
阅读 4 分钟
4.1k
1486. 数组异或操作难度简单83给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。示例 1: {代码...} 示例 2: {代码...} 示例 3: {代码...} 示例 4: {代码...} 提示:1 <= n <= 10000 <= sta...
封面图

Spring aop 通过获取代理对象实现事务切换

2021-05-06
阅读 2 分钟
6.7k
在项目中,涉及到同一个类中一个方法调用另外一个方法,并且两个方法的事务不相关。这里面涉及到一个事务切换的问题,通过spring aop类里面的AopContext类获取当前类的代理对象,这样就能切换对应的事务管理器了,具体做法如下:
封面图

Java错误解决记录(踩坑记录)

2021-04-28
阅读 2 分钟
5.2k
You aren‘t using a compiler supported by lombok, so lombok will not work and has been disabled.Preferences | Build, Execution, Deployment | Compiler 在User-local build process VM options (overrides Shared options):后面添加-Djps.track.ap.dependencies=false
封面图

算法(5)-计数排序(键索引计数法)

2021-04-25
阅读 7 分钟
2.8k
算法(5)-计数排序(键索引计数法)01 计数排序算法概念计数排序不是一个比较排序算法,该算法于1954年由 Harold H. Seward提出,通过计数将时间复杂度降到了O(N)。02 基础版算法步骤第一步:找出原数组中元素值最大的,记为max。第二步:创建一个新数组count,其长度是max加1,其元素默认值都为0。第三步:遍历原数组中的...
封面图

算法(4)-快速幂

2021-04-21
阅读 2 分钟
3k
快速幂(Exponentiation by squaring,平方求幂)是一种简单而有效的小算法,它可以以O(lgn)的时间复杂度计算乘方。快速幂不仅本身非常常见,而且后续很多算法也都会用到快速幂。
封面图

在Markdown中输入数学公式(MathJax)

2021-04-21
阅读 3 分钟
2.4k
在Markdown中输入数学公式(MathJax)1 基本语法1.1 呈现位置正文(inline)中的LaTeX公式用$...$定义语句为$\sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t$显示在当前行内$\sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t$单独显示(display)的LaTeX公式用$$...$$定义,此时公式居中并放大显示语句为$$\sum_{i=0}N\int_{a}{b}g(t,i)\te...

算法(3)-位运算加法

2021-03-02
阅读 3 分钟
3.1k
and运算通常用于二进制的取位操作,例如一个数 & 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。

spring-data-redis中同时使用set()、get()、increment()的问题

2021-02-25
阅读 7 分钟
7.5k
spring-data-redis中同时使用set()、get()、increment()的问题1.问题描述最近开发代码,使用redis时,遇到一个有意思的问题,问题代码如下: {代码...} 如代码注释描述:问题1:先set key1,再get key1没有问题,但是再increment就会报错,报错内容如下: {代码...} 问题2:先increment key2(key2之前不存在),再get k...
封面图

算法(2)-多数投票算法(Boyer-Moore Voting Algorithm)及推广

2021-02-23
阅读 3 分钟
4.3k
给定一个长度为n的数组的时候,找出其中的主元素,即该元素在数组中出现的次数大于n/2的取整。题目中已经假定所给的数组一定含有元素,且主元素一定存在。一下是一些常用方法:
封面图

算法(1)-字符串匹配的Boyer-Moore算法

2021-02-23
阅读 3 分钟
1.1k
Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了这种算法。

解决Github网页上图片显示失败的问题

2020-12-28
阅读 3 分钟
9.7k
最近看看sentinel的源码,结果在阅读官方文档的时候,发现图片无法展示,十分难受,这个文档是存放在GitHub,那应该就是GitHub的问题。

【bug】idea中的js代码无法折叠

2020-11-10
阅读 1 分钟
2.2k
网上看到同样的问题,不过怀疑是因为更新idea 版本到2020引起的,不过我使用的idea是2019版本,但是我之前使用的leetcode editor插件没有更新,最近更新了一下,就导致了这个问题。

6种延时队列的实现方案

2020-08-31
阅读 10 分钟
4.1k
我个人一直秉承的观点:工作上能用JDK自带API实现的功能,就不要轻易自己重复造轮子,或者引入三方中间件。一方面自己封装很容易出问题(大佬除外),再加上调试验证产生许多不必要的工作量;另一方面一旦接入三方的中间件就会让系统复杂度成倍的增加,维护成本也大大的增加。

JUC-Condition

2020-08-13
阅读 6 分钟
2.3k
在使用Lock之前,我们使用的最多的同步方式应该是synchronized关键字来实现同步方式了。配合Object的wait()、notify()系列方法可以实现等待/通知模式。Condition接口也提供了类似Object的监视器方法,与Lock配合可以实现等待/通知模式,但是这两者在使用方式以及功能特性上还是有差别的。Object和Condition接口的一些对...

Spring Cloud(1)-入门总结

2020-07-31
阅读 14 分钟
1.1k
Spring Cloud 入门总结看过的最棒的spring cloud入门简介文章首先我给大家看一张图,如果大家对这张图有些地方不太理解的话,我希望你们看完我这篇文章会恍然大悟。总体架构什么是Spring cloud构建分布式系统不需要复杂和容易出错。Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发...

分布式-Dubbo(1)-负载均衡策略

2020-07-28
阅读 29 分钟
3.5k
LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。

分布式-理论基础(2)-分布式一致性协议Paxos

2020-07-27
阅读 4 分钟
1.9k
图解分布式一致性协议Paxos 本文转载自图解分布式一致性协议Paxos Paxos协议/算法是分布式系统中比较重要的协议,它有多重要呢? <分布式系统的事务处理>: Google Chubby的作者Mike Burrows说过这个世界上只有一种一致性算法,那就是Paxos,其它的算法都是残次品。 <大规模分布式存储系统>: 理解了这两个...

分布式-理论基础(1)-一致性、2PC 和 3PC

2020-07-25
阅读 5 分钟
1.6k
狭义的分布式系统指由网络连接的计算机系统,每个节点独立地承担计算或存储任务,节点间通过网络协同工作。广义的分布式系统是一个相对的概念,正如Leslie Lamport所说[1]:

消息中间件(1)-RocketMQ入门

2020-07-23
阅读 6 分钟
1.8k
本文首先引出消息中间件通常需要解决哪些问题,在解决这些问题当中会遇到什么困难,Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件否可以解决,规范中如何定义这些问题。然后本文将介绍RocketMQ的架构设计,以期让读者快速了解RocketMQ。