自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

山鬼谣的专栏

我的这一生

  • 博客(7)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 分布式锁:红锁redLock和联锁multiLock源码分析

环境Java11前言一开始只是想研究红锁源码,但是发现红锁源码是基于联锁源码的,所以联锁的情况一起分析了下;Redis获取分布式锁,其实就是向N个Redis实例中使用SETNX来对该resource设置键值。为了方便分析代码,假设集群里三个Redis实例;起始调用代码:long leaseTime = 3L;lock.lock(leaseTime, TimeUnit.SECONDS);RedissonRedLock redLock = new RedissonRedLock(lock);

2020-11-18 17:55:47 5113 1

原创 MySQL学习笔记:基础模型三 索引

环境MacBook Pro序言MySQL 技术内幕 InnoDB 存储引擎 第二版Q : B+索引能通过给定的键值找到具体行吗?A : 不能,B+树索引能找到的只是被查找数据行所在页。然后数据库通过把页读进内存,再在内存中查找,最后得到要查找的数据。Q:基于上面的问题,那么在内存中是如何进行查找的呢?A:我们知道每页Page Directory中的槽是按照主键顺序存放的,对于某一条具体记录的查询是通过对Page Directory进行二分查找找到的。B+树的演化而来二叉查找树 —&g

2020-11-23 19:46:39 462

原创 Redis学习笔记: 数据库的实现和持久化

环境window10前言《Redis 设计与实现》读书笔记;服务器结构Redis服务器默认会创建16个数据库,编号从0开始;服务器结构如下:struct redisServer{ ... // 一个数组,保存着服务器中的所有数据库 redisDb *db; // 服务器数据库的数量 int dbnum; ...}数据库结构typedef struct redisDb{ ... // 数据库键空间,保存着数据库中的所有键值对 dict *dict; ...} red

2020-11-22 17:14:38 153

原创 分布式锁的代码应用

环境Java 11前言笔记:记录代码上如何使用分布式锁;Lock和TryLock的区别1: lock拿不到锁会一直等待。tryLock是去尝试,拿不到就返回false,拿到返回true。2: tryLock是可以被打断的,被中断 的,lock是不可以。代码public static final String SEND_COUPON_STRATEGY_LOCK_PREFIX = "send_coupon_strategy_";String key = SEND_COUPON_STRATE

2020-11-18 10:45:23 238

原创 MySQL学习笔记:基础模型二 分区

环境MacBook Pro序言MySQL 技术内幕 InnoDB 存储引擎 第二版分区表MySQL只支持局部分区索引,一个分区中即存放了数据又存放了索引。全局分区:数据存放在各个分区中,但是所有的数据的索引放在一个对象中。mysql目前只支持局部分区启用分区后,表不再由一个ibd文件组成,而是各个分区ibd文件组成;如:t#P#p0.ibd, t#P#p1.ibd 类似这样的格式;分区类型支持 range,list,hash, linear hash, key, columns 类

2020-11-13 20:03:04 217

原创 VS Code 个人配置

环境window10vs code :1.51下载官网下载:https://code.visualstudio.com/傻瓜式安装后,开始配置:插件汉化选择左侧最下面那个图标,在输入框里输入chinese,如下图,点击Install即可;要是出现we cannot connect to the extensions marketplace at this time, please ...这样的错误提示,可能是网络卡的缘故,我等了一会就好了;auto rename tag自动重命名

2020-11-11 23:00:01 736

原创 Redis学习笔记:字典rehash底层实现与Java区别

环境Java:11前言今天在看Redis的字典rehash时,发现其与Java不一样;并由此产生了如下思考:① Redis既然采用的是渐进式rehash,那么Java的HashMap采用的是什么?② 集中式重新rehash是非常耗性能的,hashMap中rehash的优化点在哪里?扩容以前下面这段代码我没有重点看,只知道这是在扩容;今天重点看了下,不过红黑树没看:final Node<K,V>[] resize() { Node<K,V>[] oldTab

2020-11-01 18:33:25 788 5

scalable-io-in-java-中文.pdf

网上都是不带书签,并且有些地方翻译有歧义。 所以我整理了一个。 特点:带书签 Scalable io in java 中文版,并且对有歧义的语义进行了修改。

2019-07-04

serlvet过滤器的教程

详细的讲解,过滤器的知识点,非常适合于初级入门

2014-01-07

Ajax异步检查用户名是否存在

Ajax异步检查用户名是否存在,一个学习Ajax非常基础的例子

2014-01-07

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

TA关注的人

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