自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(174)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis 开发规范

redis规范

2023-02-17 10:03:34 325

原创 使用docker安装mysql8

docker 安装mysql8

2023-02-14 10:00:59 584

原创 Linux安装Docker完整教程

最近接手了几个项目,发现项目的部署基本上都是基于Docker的,幸亏在几年前已经熟悉的Docker的基本使用,没有抓瞎。关闭Docker服务:docker service docker stop / docker systemctl stop docker。但安装完成之后的默认是未启动的,需要进行启动操作。执行一下命令,安装最新版本的 Docker Engine-Community 和 containerd。Docker官方和国内daocloud都提供了一键安装的脚本,使得Docker的安装更加便捷。

2023-02-13 22:31:17 584

原创 mysql中autocommit,start transaction和begin/commit的异同

mysql中autocommit,start transaction和begin/commit的异同

2022-10-22 22:00:01 540

原创 MySQL 事务的原子性和一致性有什么区别?隔离级别又是什么?

MySQL 事务的原子性和一致性

2022-10-21 22:41:21 98

原创 MyBatis中大于和小于号的转义写法

MyBatis中大于和小于号的转义写法

2022-10-21 13:06:29 121

原创 BigDecimal类的除法

BigDecimal类的除法

2022-10-21 13:04:54 268

原创 Java中从当前月往前取12个月的时间

Java中从当前月往前取12个月的时间

2022-10-18 13:07:43 1638

原创 mysql查询当前日期的前12个月的统计

selectfrom()aleft join。

2022-10-12 14:16:59 746

转载 select......for update会锁表还是锁行

select查询语句是不会加锁的,但是select .......for update除了有查询的作用外,还会加锁呢,而且它是悲观锁。使用主键id为条件去查询,然后开启另一个事务去更新数据,更新被阻塞,加锁了,锁定要查询的id为1的行数据。如果是普通字段(没有索引/主键),那么select ..... for update就会进行锁表。另一个事务我去更新另外一条数据,如果我更新成功了,就是锁行,失败了就是锁表。那么它加的是行锁还是表锁,这就要看是不是用了索引/主键。图二为第二个事务,去更新数据,被阻塞了。

2022-09-19 09:50:52 81

原创 mysql 联合索引使用规则

从一道有趣的题目开始分析:假设某个表有一个联合索引(c1,c2,c3,c4)以下选项哪些字段使用了该索引:A where c1=x and c2=x and c4>x and c3=xB where c1=x and c2=x and c4=x order by c3C where c1=x and c4= x group by c3,c2D where c1=? and c5=? order by c2,c3E where c1=? and c2=? and c5=? order

2021-03-12 23:24:38 230

原创 哪些指令不能重排:Happen-Before规则

虽然java虚拟机和执行系统会对指令进行一定的重排,但是指令重排是有原则的,并非所有的指令都可以随便改变执行位置,以下这些基本原则是指令重排不可违背的:程序顺序原则:一个线程内保证语义的串行性。 volatile规则:volatile变量的写先与读发生,这保证了volatile变量的可见性。 锁规则:解锁(unlock)必然发生在随后的加锁(lock)前。 传递性:A先与B,B先与C,那么A必然先于C。 线程的start()方法先于它的每一个动作。 线程的所有操作先于线程的终结(Thread.

2021-02-01 21:27:21 170

原创 JMM中原子性,可见性,有序性

原子性(Atomicity):原子性是指一个操作是不可中断的。即使是多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。可见性(Visibility):可见性是指当一个线程修改了某一个共享变量的值时,其他线程是否能够立即知道这个修改。有序性(Ordering): 对于一个线程的执行代码而言,我们总是习惯地认为代码是从前往后依次执行的;这么理解不完全正确,因为就一个线程而言,确实会表现成这样。但是。在并发时,程序的执行可能就会出现乱序。...

2021-02-01 21:16:29 355

原创 死锁,饥饿和活锁

死锁,饥饿和活锁都属于多线程的活跃性问题。如果发现这几种情况,那么相关线程就不再活跃了,也就是说线程很难再继续执行下去了。死锁:大家都不愿意释放自己的资源,这个状态永久持续下去,那么谁都无法执行。饥饿:是指某一个或多个线程因为种种原因无法获得所需要的资源,导致一直无法执行。比如它的线程优先级可能太低,而高优先级的线程不断抢占它需要的资源,导致低优先级线程无法工作。活锁:多个线程都主动将资源释放给他人使用,那么就会导致资源不断地在两个线程间跳动,而没有一个线程可以同时拿到所有资源正常执行。...

2021-01-31 22:49:49 134

原创 多线程-阻塞与非阻塞概念

临界区:临界区用来表示一种公共资源或者说共享数据,可以被多个线程使用。但是每一次只能有一个线程使用它,一旦临界资源被占用,其他线程要想使用这个资源就必须等待。阻塞:比如一个线程占用了临界区资源,那么其他所有需要这个资源的线程就必须在这个临界区中等待。等待会导致线程挂起,这种情况就是阻塞。非阻塞:强调没有一个线程可以妨碍其他线程执行,所有的线程都会尝试不断向前执行。...

2021-01-31 22:01:54 878

转载 /proc/cpuinfo 文件分析(查看CPU信息)

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每个物理CPU中core的个数(即核数)cat /proc/cpuinfo| grep "cpu core...

2019-11-23 22:44:31 713

转载 druid 参数配置详解

1初始化连接在druid连接数据库的配置文件中,读写datasource的bean中 要有init-method="init". 配置,否则在启动连接池时不会执行初始化操作。 示例:<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-met...

2019-10-09 16:30:37 4882 1

原创 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程

1、故障现象客服同事反馈平台系统运行缓慢,网页卡顿严重,多次重启系统后问题依然存在,使用top命令查看服务器情况,发现CPU占用率过高。2、CPU占用过高问题定位2.1、定位问题进程使用top命令查看资源占用情况,发现pid为14063的进程占用了大量的CPU资源,CPU占用率高达776.1%,内存占用率也达到了29.8%[ylp@ylp-web-01 ~]$ topto...

2019-09-25 11:28:53 277

转载 nginx的五种负载算法

1.round robin(默认)轮询方式,依次将请求分配到各个后台服务器中,默认的负载均衡方式。适用于后台机器性能一致的情况。挂掉的机器可以自动从服务列表中剔除。2.weight根据权重来分发请求到不同的机器中,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如:upstream bakend {server 192.168....

2019-09-16 22:56:41 132

转载 JVM指令集

指令码 助记符 说明0x00 nop 什么都不做0x01 aconst_null 将null推送至栈顶0x02 iconst_m1 将int型-1推送至栈顶0x03 iconst_0 将int型0推送至栈顶0x04 iconst_1 将int型1推送至栈顶0x05 iconst_2 将int型2推送至栈顶0x06 iconst_3 将int型3推送...

2019-08-27 22:27:39 133

转载 Nginx+Keepalived高可用集群

1.Keepalived高可用软件Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软件。keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Rou...

2019-08-26 17:00:05 253

转载 kafka-kafka.common.errors.RecordTooLargeException,kafka.common.MessageSizeTooLargeException

1、向Kafka中输入数据,抛异常WARN async.DefaultEventHandler: Produce request with correlation id 92548048 failed due to [TopicName,1]: org.apache.kafka.common.errors.RecordTooLargeException官网两个参数描述如下:messag...

2019-08-19 11:33:57 687

转载 jvm之java类加载机制和类加载器(ClassLoader)的详解

当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。 一、类加载过程...

2019-08-09 15:40:01 183

转载 面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别

下面直接来干货,先说这三个Map的区别:HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法:index = (hash & 0x7FF...

2019-08-06 15:24:53 92

转载 缓存穿透、缓存击穿、缓存雪崩区别和解决方案

一、缓存处理流程前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。二、缓存穿透描述:缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致...

2019-08-05 21:53:35 158

转载 Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释

一、线程5种状态新建状态(New) 新创建了一个线程对象。 就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 运行状态(Running) 就绪状态的线程获取了CPU,执行程序代码。 阻塞状态(Blocked) 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就...

2019-08-02 10:30:00 461

原创 MongoDB语法与现有关系型数据库SQL语法比较

MongoDB语法 MySql语法db.test.find({'name':'foobar'}) <==> select * from test where name='foobar'db.test.find() <==> ...

2019-08-01 14:24:45 87

原创 linux上操作mongodb数据库

MongoDB数据库基本用法用户相关1、添加一个用户use admin db.createUser( { user: "admin", pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) 2、数据库认证、安全模式db.auth("u...

2019-08-01 14:22:16 2604

原创 Linux安装mongodb总结

 先写一下安装并启动mongodb正确的步骤,然后再总结其中遇到的问题。一、安装过程1.到mongodb官网下载对应系统的压缩包,我的系统是Ubuntu16.04,64位。(注意不要选错系统版本,也可以在本地下载好后上传到云服务器)2.默认下载路径是到用户目录下的Downloads目录,将其解压tar -zxvf mongodb-linux-x86_64-3.2.12.tgz...

2019-08-01 11:42:50 100

原创 linux的防火墙管理

换oricle-linux7系统后,发现iptables的管理方法有不小的改动,记录一下遇到的问题。iptables linux系统已经默认安装了iptables和firewalld两款防火墙管理工具,但是在使用service iptables save命令的时候可能提示找不到命令;另外iptables的配置文件在/etc/sysconfig/iptables,但是新装的服务器可能没有这...

2019-07-31 15:01:14 84

原创 nginx 安装时候报错:make: *** No rule to make target `build', needed by `default'. Stop.

出现此种情况,是linux系统没有安装先决条件1、GCC——GNU编译器集合(GCC可以使用默认包管理器的仓库(repositories)来安装,包管理器的选择依赖于你使用的Linux发布版本,包管理器有不同的实现:yum是基于Red Hat的发布版本;apt用于Debian和Ubuntu;yast用于SuSE Linux等等。)RedHat中安装GCC:yuminstallgcc...

2019-07-31 11:18:53 408

原创 Linux安装JDK

1、查看Linux环境自带JDK使用命令:# rpm -qa|grep gcj显示内容其中包含相应信息# java-x.x.x-gcj-compat-x.x.x.x-xxjpp# java-x.x.x-gcj-compat-devel-x.x.x.x-xxjpp2、卸载# rpm -e--nodepsjava-x.x.x-gcj-compat-x.x.x.x-xxjpp#...

2019-07-31 11:03:25 80

转载 Java 中的原子操作

写这篇博客起源于一道面试题 i++ 是不是原子操作?那到底什么是原子操作?所谓原子操作,就是“不可中断的一个或一系列操作”。在确认一个操作是原子的情况下,在多线程环境里,我们可以避免仅仅为保护这个操作在外围加上性能昂贵的锁,甚至借助于原子操作,我们可以实现互斥锁。Java中有哪些原子操作呢?查询资料后我总结出了以下几个:原始类型:原始类型(long和double的赋值操作在32位操作...

2019-07-31 09:23:29 78

原创 linux连接mysql命令

一些主要的命令:连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1、例1:连接到本机上的MYSQL 找到mysql的安装目录,一般可以直接键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql> 2...

2019-05-07 16:46:14 6893

原创 filebeat7.0+kafka集群+logstash

1.filebeat配置filebeat.inputs:- type: log enabled: true paths: - /var/lib/docker/containers/*/*.log#============================= Filebeat modules ===============================filebeat...

2019-04-23 13:52:33 1666

转载 JDK1.8新特性: Collectors

一:简介Stream中有两个个方法collect和collectingAndThen用于对流中的数据进行处理,可以对流中的数据进行聚合操作,如:将流中的数据转成集合类型: toList、toSet、toMap、toCollection将流中的数据(字符串)使用分隔符拼接在一起:joining对流中的数据求最大值maxBy、最小值minBy、求和summingInt、求平均值averagi...

2019-04-18 09:55:32 955

原创 linux下利用nohup后台运行jar文件包程序

Linux运行jar包命令如下:方式一:java-jarXXX.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出那如何让窗口不锁定?方式二java-jarXXX.jar&&代表在后台运行。特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。继续改进,如何让窗口关闭时,程序仍然...

2019-04-12 23:52:13 173

转载 Zookeeper集群搭建

由于公司缓存方案改进,准备采用codis集群作为主要的缓存解决方案(codis:国内豌豆荚开发的redis集群解决方案,已开源,github地址:https://github.com/CodisLabs/codis),codis集群依赖于zookeeper集群,本文介绍zookeeper集群的实现。一、Zookeeper原理简介ZooKeeper是一个开放源码的分布式应用程序协调服务...

2019-04-09 15:13:41 151

原创 Spring AspectJ Execution 表达式

1. 定义切点表达式  execution(* com.xinsui.service.impl..*.*(..))  execution(* *..impl..*.*(..))  切点表达式分为五个部分  1.execution()表达式主体。  2.第一个*号表示返回类型,*号表示所有返回类型。  3.需要拦截的包名称,后边的两个点表示当前包,当前包的所有自包。  4...

2019-04-08 15:51:05 103

原创 Linux 下的 Docker 安装与使用

一、安装与配置1.安装依赖包sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2.设置阿里云镜像源sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ...

2019-03-19 17:10:06 183

hutool-core-5.7.10包

hutool-core-5.7.10

2023-02-15

hutool-all-5.7.10包

hutool-all-5.7.10 包

2023-02-15

mysql处理百万级数据优化

处理百万级以上的数据查询提高效率的办法,处理百万级以上的数据查询提高效率的办法!!!

2018-03-26

java面试宝典

对java SE中的基础知识进行升入解析,对常见的面试题进行深入解析

2015-04-03

Java编码规范

编程人员长期总结的编码规范,利于开发人员养成良好的编码习惯

2014-09-10

空空如也

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

TA关注的人

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