- 博客(24)
- 资源 (2)
- 收藏
- 关注
原创 ReentrantLock源码解析
一、总述1.Java java.util.concurrent包下的锁的原理其实都差不多,如下:AQS原理(共享资源+FIFO先进先出队列)+ LockSupport.park(Thread) 阻塞当前线程+ LockSupport.unpark(Thread) 唤醒队列中的线程2.Java中锁的阻塞和唤醒底层都是通过LockSupport实现的,LockSupport的底层是Unsafe接口,Unsafe是一个提供硬件级别的原子操作相关的接口,可实现线程的挂起及恢复,还可实现多线程同步(包括锁
2021-07-08 21:13:08
240
1
原创 通过redis队列数据结构实现商品秒杀功能
通过redis队列数据结构实现商品秒杀功能。废话不多说,直接上代码。package com.ll.jump.service.redis;import org.apache.commons.lang3.StringUtils;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;import redis.clients.jedis.Jedis;import java.util.concurrent.
2021-04-29 17:19:50
580
原创 springboot集成redisson
pom引入 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.13.3</version> </dependency>redisson-spring-boot-starter集成了sp
2020-08-28 16:49:23
2553
5
原创 常见Map最清晰明了的描述
HashMap:数组+链表+红黑树(jdk8 链表数大于8,转为红黑树存储)数组权当hash桶,通过对key进行hash及取模获取到数组下标,然后在数组下标获取对应的链表或红黑树,进行插入、查询、删除操作。上边的通过对key进行hash及取模获取到数组下标分析:jdk7key.hash&(capacity-1) (说明:此处是二进制与计算,其实就是对key的哈希值进行取模。等同于10进制计算 key.hash % capacity的效果,但是效率比这高。其实都是为了...
2020-08-09 22:47:51
246
原创 常用分表方法 根据时间分表 根据数据总量分表
日志通常来说记录只是为了查询问题时可以查到该条记录。所以一般查询该日志表,只会查询最近一段时间的。因此,日志分表不需要通过userId或其它字段进行取模分表。 那日志怎么分表呢?这里一共提供两个分表方法。一个是根据时间分表;一个是根据表数据总量分表。 一、根据时间分表某个表插入时间只能在某个时间范围内,比如说,login_log分成3个表,login_log_1,login_log_2,login_log_3。login_log_1第一次插入时间是2020/07/29,我们设置30天分一...
2020-07-29 17:32:12
3715
转载 评价系统海量数据存储高可用设计
京东的商品评论目前已达到数十亿条,每天提供的服务调用也有数十亿次,而这些数据每年还在成倍增长,而数据存储是其中最重要的部分之一,接下来就介绍下京东评论系统的数据存储是如何设计的。整体数据存储包括基础数据存储、文本存储、数据索引、数据缓存几个部分。基础数据存储基础数据存储使用MySQL,因用户评论为文本信息,通常包含文字、字符等,占用的存储空间比较大,为此MySQL作为基础数...
2019-12-21 06:56:42
1101
原创 秒杀高并发情况库存限制
思路:通过redis控制库存,先减1,如果库存小于0再加1。代码: @Override public ServiceResult testA() { jedisClient.setString("TEST:AAA", "100"); jedisClient.setString("TEST:BBB", "0"); for (in...
2019-12-18 12:09:43
335
原创 数据库设计开源免费软件EZDML使用教程
公司上市盗版及破解软件不让使用了,正版软件又不给买,所以之前用的数据库设计软件PowerDesigner没法用了,只能自己找个开源免费软件。经过自身体验,最后确定用EXDML,该软件是一个单纯的数据库设计软件,其余功能没有。所以如果只是用来设计数据库,还是很好用的。Ezdml工具使用说明1.新建模型2.新建表3.新建关联关系选中主表,再点击红框表示的符号,再点从表4.表设计5...
2019-07-22 10:59:06
1152
2
原创 springboot mysql mybatis简单示例
springboot mysql mybatis简单示例pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...
2019-07-12 17:12:59
229
原创 阿里云linux服务器基本搭建
入手阿里云入门服务器一台,搭建过程记录下。目录jdk安装mysql安装 jdk安装 步骤:下载sdk;解压安装包;设置环境变量;环境变量生效;验证。可参考https://blog.youkuaiyun.com/qq_21187515/article/details/90295031 mysql安装 下载mysql1.进入官网下载https://dev.m...
2019-07-10 10:37:30
2941
转载 verify.js纯前端验证码插件
这是一款极简洁的表单校验插件,属于半封装模式,只需引入插件,即可任意编写业务逻辑代码,简单方便易修改。首先引入js,需提前引入jquery,然后引入verift即可使用<script src="js/verify.js"></script>普通验证码<h3>普通验证码</h3><div id="demo1">...
2019-04-30 17:55:37
7586
原创 springboot中@WebFilter 拦截器不起作用
1、Filter类添加@Component注解,这个注解的目的是将创建的Filter类交给容器来处理。也就是让Filter起作用。2、或者启动类加@ServletComponentScan 注解, 这个使用来扫描@WebFilter 的,让@WebFilter起作用。注:以上两个注解只需添加一个即可,添加两个的话,Filter的方法会执行两遍...
2019-03-05 14:27:01
7129
8
原创 win10 任务栏右键无反应
最近win10经常出现任务栏右键无反应这个问题,这应该是win10的一个bug,这个bug存在挺长时间了,也不知道微软是咋想的。解决方案:打开任务管理器,【进程】内找到【Windows 资源管理器】,右键【重启启动】。ok。
2017-04-13 14:20:35
12237
1
转载 jQuery.qrcode.js客户端生成二维码,支持中文并且可以生成LOGO
描述: jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码。此插件是能够独立使用的,体积也比较 小,使用gzip压缩后才不到4kb。因为它是直接在客户端生成的条码, 所以不会有图片下载的过程,能够实现快速生成。它是基于一个多语言的类库封装的,也不依赖于其他额外的服务。
2017-01-23 15:01:01
819
原创 sql 复制服务器文件
--启用xp_cmdshellUSE master EXEC sp_configure 'show advanced options', 1 RECONFIGURE WITH OVERRIDE EXEC sp_configure 'xp_cmdshell', 1 RECONFIGURE WITH OVERRIDE EXEC sp_configure 'show adva
2016-03-17 16:02:39
363
原创 SQL自动备份 备份到本地或者远程服务器
0.1 在SQLServer2008 --> 备份数据库 --> 安全 --> 新建用户 --> 用户名 选择该windows用户 (确保 --> 机器名/人名 --> 是正确的,因为有换机器名的可能性) 数据库角色成员身份 --> db_ow
2016-03-17 15:14:24
6278
转载 SQL SERVER 统计SQL语句或存储过程执行时间
方式一:传统方式 用户自己设定开始时间,结束时间,求出差值。 --1:定义时间 declare @runTime datetimeset @runTime=getdate()--2:写sql语句或者存储过程--exec 存储过程名 存储过程需要的参数,字符串用单引号括起,数字直接写,缺省用null代替exec CurrentPage
2016-03-02 14:50:48
2487
转载 C# .Net动态调用webService
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Net;using System.IO;using System.Web.Services.Description;using System.CodeDom;using Micro
2016-02-26 11:22:20
638
原创 关于.net 使用ajax报类名未定义的问题
这个问题我发现很多人问到了,但是没有人回答怎么解决。可能是因为太简单了吧。不过简单的问题有时也会让不明所以的人们耽误一些时间。 这里我说下怎么解决这个问题:关了页面,重新运行下就可以了。当然前提是Ajax.Utility.RegisterTypeForAjax(typeof("类名"));这句代码你在Page_Load 方法里已经添加了,而且js调用的ajax方法前边也加上了[Ajax.Aj
2014-03-17 21:14:10
718
原创 关于vs调试的时候仍然可以修改源代码
在做公司的项目时,调试的时候可以修改源代码,后来我自己建了个项目,却发现调试的时候不让修改源代码。调试不能修改源代码感觉非常不方便,便上网查怎么才能调试的时候可以修改源代码。发现很多说是“启用编辑并继续”便可以,其实不是把启用编辑并继续勾选了才可以修改源代码,而是把勾选去掉就可以了。 具体操作:想要调试的时候可以修改源代码:在工具→选择→启用编辑并继续 去掉勾选,就可以了。( 在项目属性中的
2014-03-17 21:07:56
3548
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人