自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis为什么快?

Redis为什么快?前言大家好呀,我是捡田螺的小男孩。我们都知道Redis很快,它QPS可达10万(每秒请求数)。Redis为什么这么快呢,本文将跟大家一起学习。基于内存实现我们都知道内存读写是比磁盘读写快很多的。Redis是基于内存存储实现的数据库,相对于数据存在磁盘的数据库,就省去磁盘磁盘I/O的消耗。MySQL等磁盘数据库,需要建立索引来加快查询效率,而Redis数据存放在内存,直接操作内存,所以就很快。高效的数据结构我们知道,MySQL索引为了提高效率,选择了B+树的数据结构。其实合

2021-06-27 14:17:55 142

原创 Redis分布式锁

分布式锁演进阶段一// 占分布式锁,去redis占坑Boolean lock = redisTemplate.opsForValue().setIfAbsent("lock", "111");if(lock) { //加锁成功... 执行业务 Map<String, List<Catelog2Vo>> dataFromDb = getDataFromDb(); redisTemplate . delete( key: "lock");//fHßti return da

2021-01-29 16:58:02 124

原创 内存OOM问题如何快速定位?

某Java服务(假设PID=10765)出现了OOM,最常见的原因为:有可能是内存分配确实过小,而正常业务使用了大量内存某一个对象被频繁申请,却没有释放,内存不断泄漏,导致内存耗尽某一个资源被频繁申请,系统资源耗尽,例如:不断创建线程,不断发起网络连接画外音:无非“本身资源不够”“申请资源太多”“资源耗尽”几个原因。更具体的,可以使用以下工具逐一排查。一、确认是不是内存本身就分配过小方法:jmap -heap 10765图片如上图,可以查看新生代,老生代堆内存的分配大小以及使用情况,看是

2021-01-21 17:39:38 609

原创 Java服务,CPU100%问题如何快速定位?

简要步骤如下:(1)找到最耗 CPU 的进程;(2)找到最耗 CPU 的线程;(3)查看堆栈,定位线程在干嘛,定位对应代码;找出消耗最快CPU进程使用方式: top -c方法:执行 top -c ,显示进程运行信息列表键入 P (大写 p),进程按照 CPU 使用率排序图示:如上图,最耗 CPU 的进程 PID 为 10765。步骤二:找到最耗 CPU 的线程工具:top -Hp 进程方法:top -Hp 10765 ,显示一个进程的线程运行信息列表如上图,进程 10765

2021-01-21 17:27:43 96

原创 mysql开始binlog

centos 7 mysql 5.7 开启binlog阅读目录mysql5.7版本 binlog 开启及日志内容查看 一、如何开启 二、查看binlog文件回到顶部mysql5.7版本 binlog 开启及日志内容查看回到顶部一、如何开启5.7版本,直接在配置文件中指定:[mysqld]log-bin=mysql-binserver-id=1binlog_format=ROW接下来是两年前写这篇博客时候的踩坑记录,不感兴趣的,可以直接...

2021-01-21 15:52:53 113

转载 Sharding-JDBC

Sharding-JDBChttps://juejin.cn/post/6896729785603457037#heading-1

2020-11-22 09:58:21 184

原创 2020java面试知识点整理

知识点整理1、高并发系列博客http://cmsblogs.com/?page_id=30272、spring源码解读http://cmsblogs.com/?p=40473、JVM虚拟机http://cmsblogs.com/?p=177814、Mybatis源码剖析http://cmsblogs.com/?p=57355、Mysql 整理https://juejin.im/post/68832702270780702866、Spring Boot源码http://cmsblogs

2020-11-01 17:51:23 83

原创 Mybatis源码学习及自定义持久层框架

Mybatis架构原理架构功能分为三层:(1)接口层:给外部使用的接口api。通过api来操作数据库。mybatis与数据库的交互分为两种:传统的xml和mapper代理。(2)数据支撑层:负责具体的sql查找,解析,执行以及结果映射。主要目的是:根据调用的请求完成一次数据库的操作。(3)基础支撑层:负责最基础的功能支撑。包括链接管理,事务管理,配置加载和缓存处理。主要构件Myab...

2019-12-31 10:50:46 483 2

原创 算法题目及答案整理

整理了面试常见的数据结构与算法:1、数组(1)数组增删改查(2)动态扩容(3)求众数 --计数法 -- 摩尔投票法(4)求超过n/3的数字 -- 摩尔投票法(5)合并有序数组(6)最小未出现数(7)三数之和(8)旋转数组(9)数组中只出现一次的数字(10)将数字0移动到数组末尾(11)存在重复元素(12)两个数组的交集(13)递增的三元子序列...

2019-07-29 12:23:27 150

转载 Java并发编程AQS原理浅析

原文地址:http://blog.csdn.net/xieyuooo/article/details/17318131AQS的全称为(AbstractQueuedSynchronizer),这个类也是在java.util.concurrent.locks下面。这个类似乎很不容易看懂,因为它仅仅是提供了一系列公共的方法,让子类来调用。那么要理解意思,就得从子类下手,反过来看才容易看懂。如下图

2018-06-11 12:19:08 290

转载 深入理解Java内存模型(七)——总结

原文地址:http://www.infoq.com/cn/articles/java-memory-model-7处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,

2018-06-11 12:16:36 156

转载 深入理解Java内存模型(六)——final

原文地址:http://www.infoq.com/cn/articles/java-memory-model-6与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一

2018-06-11 12:16:27 204

转载 深入理解Java内存模型(五)——锁

原文地址:http://www.infoq.com/cn/articles/java-memory-model-5锁的释放-获取建立的happens before 关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:class MonitorExample {

2018-06-11 12:16:16 104

转载 深入理解Java内存模型(四)——volatile

原文地址:http://www.infoq.com/cn/articles/java-memory-model-4volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代

2018-06-11 12:16:07 126

转载 深入理解Java内存模型(三)——顺序一致性

原文地址:http://www.infoq.com/cn/articles/java-memory-model-3数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉

2018-06-11 12:15:46 127

转载 深入理解Java内存模型(二)——重排序

原文地址:http://www.infoq.com/cn/articles/java-memory-model-2数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a = 1;b = a;写一个变量之后,再读这个位置。写后写a

2018-06-11 12:15:27 101

转载 深入理解Java内存模型(一)——基础

原文地址:http://www.infoq.com/cn/articles/java-memory-model-1并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间

2018-06-11 12:15:17 115

原创 Axios与Mock使用详解

VUE之Axios与Mock使用详解    如果对vue的入门安装等有问题,请参考第一篇博客:https://blog.csdn.net/weixin_38316338/article/details/80608450一.Axios使用详解    1.基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用     2.功能特性在浏览器中发送...

2018-06-08 11:12:42 11224

原创 VUE开发环境搭建

博客原文地址:https://segmentfault.com/a/1190000009366036首先,列出来我们需要的东西: node.js环境(npm包管理器)vue-cli 脚手架构建工具cnpm npm的淘宝镜像vue的安装1.vue的安装依赖于node.js,所以先安装过node.js。从node.js官网下载并安装node,安装过程很简单,一路“下一步”就可以了(傻瓜式安装)安装完成...

2018-06-07 14:31:36 309

apachemina

mina中文文档

2017-04-16

空空如也

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

TA关注的人

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