08 2019 档案
摘要:概述 消息队列比作一个存放消息的容器,需要使用消息的时候可以取出消息供自己使用。是分布式中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削锋、降低系统耦合性。(注意消费信息顺序问题,可能出现消费失败,或者一个queue多个consumer也会导致消息被消费顺序不对,一定要保证消息被消费
阅读全文
摘要:ThreadPoolExecutor继承了AbstractExecutorService,该抽象类为线程池提供了默认实现。后面讲到线程池代码时详细说明。 构造函数 ThreadPoolExecutor有很多重载的构造函数,所有构造函数最终都调用了一个构造函数,只是有些构造函数有默认参数而已,看下最终
阅读全文
摘要:同步容器 为了解决并发情况下的容器线程安全问题的。给多线程环境准备一个线程安全的容器对象。 线程安全的容器对象: Vector, Hashtable。线程安全容器对象,都是使用synchronized方法实现的。而concurrent包中的同步容器,大多数是使用系统底层技术实现的线程安全。类似nat
阅读全文
摘要:锁的种类 Java中锁的种类大致分为偏向锁,自旋锁,轻量级锁,重量级锁。 锁的使用方式为:先提供偏向锁,如果不满足的时候,升级为轻量级锁,再不满足,升级为重量级锁。自旋锁是一个过渡的锁状态,不是一种实际的锁类型。 锁只能升级,不能降级。 偏向锁 是一种编译解释锁。如果代码中不可能出现多线程并发争抢同
阅读全文
摘要:synchronize synchronized锁什么?锁对象。 可能锁对象包括: this, 临界资源对象(Object),Class类对象。 同步 - 原子性 加锁的目的: 就是为了保证操作的原子性 同步方法 同步方法锁定的是当前对象。当多线程通过同一个对象引用多次调用当前同步方法时,需同步执行
阅读全文
摘要:概述 ConcurrentHashMap 1.7 版本前和 1.8 版本之后数据结构有所调整 1.7 结构:底层采用 分段的数组+链表 实现。(图1)主要是segment数组,segment 保存的是一个HashEntry数组(和hashmap 1.7 的结构一样)。每个segment就相当于一个H
阅读全文
摘要:概述 HashMap是基于哈希表的Map接口的非同步实现,允许使用null值和null键,但不保证映射的顺序。 底层使用数组实现,数组中每一项是个单向链表,即数组和链表的结合体;当链表长度大于一定阈值时,链表转换为红黑树,这样减少链表查询时间。 HashMap在底层将key-value当成一个整体进
阅读全文
摘要:概述 1 LinkedList是List接口的双向链表非同步实现,并允许包括null在内的所有元素。 2 底层的数据结构是基于双向链表的,该数据结构我们称为节点。它也可以被当作堆栈、队列(实现 了List 接口)或双端队列(实现 了Deque 接口)进行操作。 3 双向链表节点对应的类Node的实例
阅读全文
摘要:持久化 RDB方式: rdb方式的持久化是通过快照完成的。符合一定条件时redis会自动将内存中的所有数据生成一份副本并存储在硬盘上,这个过程叫快照。以下几种情况会对数据进行快照: 1 根据配置规则进行自动快照 2 用户执行save 或 bgsve命令 3 执行 flushall 命令 4 执行复制
阅读全文
摘要:排序 使用SORT命令,操作集合类,和列表和有序集合类; SORT key Alpha 按照字典顺序排列非数字。SORT key DESC BY 参数, 可以排序散列类型,甚至是字符串类型(根据名称+通配符) get 排序之后 获取值 store 保存 优化: sort是redis最强大最复杂的命令
阅读全文
摘要:基本命令: redis 不区分大小写 keys pattern ; 获得符合规则的键名列表 支持glob风格通配符,?:一个字符 ; * : 任意个字符; [b-d ] 匹配b到d; \? 匹配“?” exists key > 0/1 ; 判断一个键是否存在。 del key > 0/1 ; del
阅读全文
摘要:避免全表扫描 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 避免判断null值 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num
阅读全文
摘要:MySQL中的索引简介 索引的优点 1 保证每一行数据的唯一性 2 提高查询的速度 3 加快表与表之间的连接 4 分组和排序进行数据检索的时候,显著减少分组和排序时间 5 通过索引,可以在查询中使用查询优化器,提高系统的性能。 索引的缺点 1 时间:创建索引和维护索引需要消耗时间,时间会随着数据量递
阅读全文
摘要:MySQL DBMS - MySQL Database Management System。数据库管理系统。 MySQL数据库引擎 ISAM (Indexed Sequential Access Method) isam是一个存在时间较长的数据表格管理方法,被设计的时候就考虑到数据库被查询的次数要远
阅读全文
摘要:Linux文件系统简介 在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。 也就是说在LINUX系统中有一个重要的概念:一切都是文件。其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就
阅读全文

浙公网安备 33010602011771号