摘要: 1、为什么要使用分布式锁 如果在一个分布式系统中,我们从数据库中读取一个数据,然后修改保存,这种情况很容易遇到并发问题。因为读取和更新保存不是一个原子操作,在并发时就会导致数据的不正确。这种场景其实并不少见,比如电商秒杀活动,库存数量的更新就会遇到。如果是单机应用,直接使用本地锁就可以避免。如果是分 阅读全文
posted @ 2021-05-23 15:59 _否极泰来 阅读(10435) 评论(2) 推荐(0) 编辑
摘要: 起因 下午接到运维反馈,生产redis有个执行keys的命令请求太慢了,要两三秒才能响应 涉及命令如下: KEYS ttl_600::findHeadFootData-15349232-*-head 什么是keys命令? keys官方文档 http://www.redis.cn/commands/k 阅读全文
posted @ 2021-05-19 02:51 _否极泰来 阅读(677) 评论(0) 推荐(0) 编辑
摘要: 简介 synchronized是Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。同时它还保证了共享变量的内存可见性。 synchronized使用 synchronized可以修饰普通方法,静态方法和代码块。 普通同 阅读全文
posted @ 2021-04-25 18:58 _否极泰来 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 一、简介 HashTable也是一种key-value结构,key-value不允许null,并且这个类的几乎全部的方法都加上了synchronized锁,来保证并发安全,由于加了锁所以性能方面会比较低。 二类图 public class Hashtable<K,V> extends Diction 阅读全文
posted @ 2021-04-18 11:54 _否极泰来 阅读(111) 评论(0) 推荐(0) 编辑
摘要: #####一、简介 HashMap是一个散列表,是一种用于存储key-value的数据结构。 二、类图 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable 1 阅读全文
posted @ 2021-04-15 16:51 _否极泰来 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 1、简介 LinkedList 底层使用的是 双向链表的数据结构 2、类图(JDK 1.8) 下图是LinkedList实现的接口和继承的类关系图: public class LinkedList<E> extends AbstractSequentialList<E> implements Lis 阅读全文
posted @ 2021-04-14 15:08 _否极泰来 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 1、简介 ArrayList是java集合框架常用的集合类之一,底层是基于数组来实现容量大小动态变化的。 2、类图(JDK 1.8) 下图是ArrayList实现的接口和继承的类关系图: public class ArrayList<E> extends AbstractList<E> implem 阅读全文
posted @ 2021-04-12 20:29 _否极泰来 阅读(219) 评论(0) 推荐(0) 编辑