自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 zookeeper实现分布式锁

前言zookeeper的设计初衷,就是为了协调分布式服务,因此利用zookeeper来解决分布式锁的问题也是一种较为简单的实现1 原理利用zookeeper的顺序临时节点的特性来实现1.1 获取锁首先,在zookeeper当中创建一个父节点 /testLock;当第一个客户端C1想要获取锁时,会先在父节点下创建一个临时顺序节点N1; 之后,C1会查找父节点下的所有的临时顺序节点并排序,判断自己所创建的节点N1是不是最小的(最靠前的); 如果是,则成功获得锁;这时候,如果再有一个客户端

2021-01-25 14:30:05 405

原创 Redis实现分布式锁

Redis实现分布式锁1 问题导入使用setnx来实现分布式锁?2 问题分析问题1:setnx命令在参数中不能设置过期时间,要执行expire才能进行过期时间设置,不是原子性的操作,可能会在执行setnx后服务器宕机,没有设置expire,从而造成死锁现象解决:在redis中可以使用set key value ex expireTime nx 命令来进行替换,在代码中可以使用redisTemplate.opsForValue().setIfAbsent(key, value, expireTi

2021-01-09 17:59:39 468 4

原创 join行转列,union列转行

1、join行转列成绩表grades1,添加数据CREATE TABLE `grades1` ( `id` int(4) NOT NULL AUTO_INCREMENT COMMENT 'id', `name` varchar(20) DEFAULT NULL COMMENT '姓名', `subject` varchar(20) DEFAULT NULL COMMENT '学科', `score` int(4) DEFAULT NULL COMMENT '成绩', PRIMAR

2021-01-23 10:04:03 735

原创 mysql索引优化细节

1 使用索引列进行查询的时候尽量不要使用表达式explain select * from menu where mid+1=5; -- 主键索引失效explain select * from menu where mid=4; -- 使用索引查询2 尽量使用主键查询,因为主键查询不会触发回表查询使用普通索引查询时,如果要返回的结果中包含非索引列,会再触发一次主键查询(回表)3 较长字段列创建索引,可以使用前缀索引当频繁进行查询操作的列字段较长时,可截取该字段的重复率较低的前n个长度建立索引,以

2021-01-13 16:25:33 232 1

原创 mysql中join连接后的条件筛选使用where和and的区别

mysql中join连接后的条件筛选使用where和and的区别1. join 和 inner join在 join 和 inner join 中where和and的查询结果相同,都是取连接后的结果再进行条件筛选select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m join sort s on m.sort_id=s.sort_id and m.sort_id=2;select m.menu_id,m.sort_id,s.sor

2021-01-13 10:18:47 4166

原创 String.intern()

@String.intern()深入理解intern()前言** 当调用intern方法时,如果字符串常量池中已经包含与equals(Object)为true,则返回常量池中此字符串的地址;否则,将此字符串添加到字符串常量池中,并返回该地址。**在jdk6以及之前,首次遇到字符串时,调用intern()方法实际是在字符串常量池中添加了一个新的字符串常量,而在jdk7以及之后,首次遇到字符串时,调用intern()方法实际是在字符串常量池中保存了指向堆中该对象的地址引用,并没有真正的在字符串

2020-11-30 17:49:20 377

原创 Redis 三大缓存问题

Redis 三大缓存问题缓存穿透 缓存击穿 缓存雪崩1.缓存穿透1.1 什么是缓存穿透​ 缓存穿透,它就是指当用户在查询一条数据的时候,而此时数据库和缓存却没有关于这条数据的任何记录,而这条数据在缓存中没找到就会向数据库请求获取数据。它拿不到数据时,就会一直查询数据库,这样会对数据库的访问造成很大的压力。​ 举个栗子:用户查询一个 id = -1 的商品信息,一般数据库 id 值都是从 1 开始自增,很明显这条信息是不在数据库中,当没有信息返回时,会一直向数据库查询,给当前数据库的造成很大的

2020-10-09 14:40:51 208

原创 使用aop进行事务与日志管理

aop有关事务与日志管理1. 添加约束在spring配置文件中加入有关的事务与aop头部约束 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-

2020-07-08 18:14:19 501

原创 Spring事务简述

Spring事务简述事务接口TransactionDefinition包含(传播机制、隔离级别、事务超时)1. 传播机制(7种)源码 int PROPAGATION_REQUIRED = 0; int PROPAGATION_SUPPORTS = 1; int PROPAGATION_MANDATORY = 2; int PROPAGATION_REQUIRES_NEW = 3; int PROPAGATION_NOT_SUPPORTED = 4;

2020-07-08 17:34:39 199

原创 idea下用Tomcat搭建javaweb项目环境

idea下用Tomcat搭建javaweb项目环境1.Create New Project,点击新建进入[外链图片转存失败,源站可能有防盗链机制,建在这里插入!描述]议将图片上https://传(imblog.cg-sdnimg.cn/2019100420223916.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shad...

2019-10-04 20:38:30 283

空空如也

空空如也

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

TA关注的人

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