10 2020 档案

摘要:前言 了解到JDK8对HashMap进行了优化,就一起了解一下JDK8的HashMap。 原理 1. 哈希表的原理 首先需要一张Hash表,Java通过数据实现:默认长度位16,并且。 第一步插入张三(哈希值11): 第二步插入李四(哈希值12): 第三步插入李磊(哈希值12): 从上图我们基本可以 阅读全文
posted @ 2020-10-31 16:51 加速丨世界 阅读(549) 评论(0) 推荐(0)
摘要:前言 在学习JDK8的HashMap的时候遇到了红黑树,由于之前没有遇到过红黑树,所以借这个机会好好了解一下红黑树。 原理 先看一下红黑树的定义: 1.每个结点或是红的,或是黑的2.根节点是黑的3.每个叶结点是黑的4.如果一个结点是红的,则它的两个儿子都是黑的5.对每个结点,从该结点到其任何叶子节点 阅读全文
posted @ 2020-10-28 20:42 加速丨世界 阅读(517) 评论(0) 推荐(0)
摘要:前言 学习Java阻塞队列的时候,了解到了ConcurrentLinkedQueue队列使用了堆结构,就整理一下堆结构的逻辑 原理 堆是一颗满二叉树(除了最后一层的节点可以不满,其他层都必须是满的),元素存储在数组中,头结点必定是最大或者最小值(大小顶堆)。 结构图 入队逻辑:保证小顶堆不变 出队逻 阅读全文
posted @ 2020-10-28 20:28 加速丨世界 阅读(338) 评论(0) 推荐(0)
摘要:前言 在学习ArrayList的时候,不可避免的会和LinkedList做对比,所以我接下来学习一下LinkedList。 源码分析 LinkedList的底层是双向链表:https://www.cnblogs.com/jssj/p/11644125.html 链表节点的源码 private sta 阅读全文
posted @ 2020-10-25 21:17 加速丨世界 阅读(259) 评论(0) 推荐(0)
摘要:前言 学习LinkedList的时候,遇到了队列数据结构,就想着回顾一下队列数据结构。 原理 Queue数据结构是一种线性的结构,先进先出的特性。下面看一下逻辑图 队列在我们写代码的过程比较常用,例如打印日志,一个程序打印日志是比较消耗资源的,一般都会采用队列实现,将需要的日志先放入队列中,由其他线 阅读全文
posted @ 2020-10-18 12:50 加速丨世界 阅读(263) 评论(0) 推荐(0)
摘要:前言 分析ArrayList 的源码为JDK8版本。 源码分析 我们先看看一个案例: public class test2 { public static void main(String[] args) { int index = 10000000; ArrayList arrayList = n 阅读全文
posted @ 2020-10-11 21:10 加速丨世界 阅读(418) 评论(0) 推荐(1)
摘要:前言 在看ArrayList源码的时候遇到了关键字“transient”,可怜的我居然没有遇到过这个关键字,那没有办法只好去找资料了解一下它的功能。 功能说明 先看一个案例 public class User implements Serializable { private static fina 阅读全文
posted @ 2020-10-11 21:08 加速丨世界 阅读(268) 评论(0) 推荐(0)
摘要:前言 在学习ArrayList的时候,发现ArrayList继承了Cloneable接口,于是就想着需要了解一下该接口是什么作用。 浅拷贝 我们先写一段代码,来看看什么是浅拷贝 public class DogSchool { public String address; public String 阅读全文
posted @ 2020-10-07 10:05 加速丨世界 阅读(465) 评论(0) 推荐(0)
摘要:前言 作者在工作中遇到了往MySQL表中插入一条数据,结果插入不进去。并且同样的操作在Oracle中却可以插入,于是就专门研究了一下MySQL5.7锁的逻辑。 锁的介绍 介绍锁之前需要先了解一下事务隔离级别:https://www.cnblogs.com/jssj/p/13437036.html M 阅读全文
posted @ 2020-10-03 18:14 加速丨世界 阅读(356) 评论(0) 推荐(0)
摘要:Redis大部分常用功能都在这里了。 Redis环境搭建(Linux):https://www.cnblogs.com/jssj/p/13648065.html Redis权限管理 :https://www.cnblogs.com/jssj/p/13656930.html Redis数据类型和基本操 阅读全文
posted @ 2020-10-02 20:10 加速丨世界 阅读(296) 评论(0) 推荐(0)
摘要:前言 随着业务并发量的不断扩张,redis内存数据库也会有处理不过来的情况,故redis也考虑集群来缓解并发的压力。 原理 Redis 集群原理图 1. Redis集群中总共了16384个Slot 用于存放redis的键值对。这个Slot会平均分配给每一组集群(图中3组就分配成5461,5461,5 阅读全文
posted @ 2020-10-02 20:09 加速丨世界 阅读(251) 评论(0) 推荐(0)
摘要:前言 redis主从设置好了之后,我们还需要能够监控主库,并且出现故障自动切换主从关系。 搭建 第一步创建新的目录,并设置参数文件 port 26380 dir "/home/redis/sentinel/data" sentinel monitor mymaster 127.0.0.1 6380 阅读全文
posted @ 2020-10-02 20:08 加速丨世界 阅读(188) 评论(0) 推荐(0)
摘要:前言 Redis主复制集功能可以保证灾难出现的情况。 搭建 第一步配置三个redis.conf: 目录信息可以自己配置 protected-mode yes port 6380 daemonize yes pidfile /var/run/redis_6380.pid loglevel notice 阅读全文
posted @ 2020-10-02 20:07 加速丨世界 阅读(234) 评论(0) 推荐(0)
摘要:前言 消息模式为了资源的充分利用。 说明 Redis的消息分为两类 1. 消息队列 2. 订阅模式 订阅模式需要开两个窗口演示 第一步:设置接收频道 SUBSCRIBE channel [channel ...] -- 设置接收频道 第二步:在另一个窗口往这个频道发送消息 PUBLISH chann 阅读全文
posted @ 2020-10-02 20:05 加速丨世界 阅读(155) 评论(0) 推荐(0)
摘要:前言 用好redis,必须要懂各项配置 参数 1. redis的参数配置文件为 redis.cnf 默认在redis的安装目录下 登陆Redis 查询参数命令 CONFIG GET * -- 查看redis的全部参数设置, 模糊查询例如:*re* redis参数是一行是参数名称,一行是参数值。 设置 阅读全文
posted @ 2020-10-02 20:04 加速丨世界 阅读(194) 评论(0) 推荐(0)
摘要:前言 Redis事务,是基于队列实现,并且是乐观机制,属于弱事务支持。 操作 第一步,开启事务 MULTI -- 开启事务 这个使用set,get 数据如下: EXEC -- 提交事务 Redis 事务隔离 WATCH key [key ...] -- 监控键值,如果该键值在提交事务之前有变化,则本 阅读全文
posted @ 2020-10-02 20:02 加速丨世界 阅读(152) 评论(0) 推荐(0)
摘要:前言 redis 的一大特点就是持久化。 原理 RDB 持久化 :根据快照实现 优点:速度快,适合备份,主从复制也是基于此。新快照会覆盖上一次快照。 缺点:因为是快照,所以会存在数据丢失。 AOF 持久化:记录全部操作实现 优点:能够最大程度的保证数据不丢。 缺点:日志量大。 参数说明: RDB 持 阅读全文
posted @ 2020-10-02 20:01 加速丨世界 阅读(339) 评论(0) 推荐(0)
摘要:基本操作 EXISTS key 判断key是否存在,存在反馈1,否则反馈0. DEL key 删除key KEYS pattern 查看键信息,可以使用一些规则 EXPIRE/PEXPIRE key seconds -- 设置键值有效时间(秒和毫秒) 这里会出现内存击穿,导致雪崩,最后导致mysql 阅读全文
posted @ 2020-10-02 19:59 加速丨世界 阅读(356) 评论(0) 推荐(0)
摘要:前言 redis也一样有权限的管理。 设置 修改redis.cnf 文件,开启远程登录 protected-mode yes -- 是否开启保护模式,yes:开启,no:关闭 bind 127.0.0.1 -- 设置哪些ip可以访问, 注意阿里云要绑定内网的iprequirepass 123456 阅读全文
posted @ 2020-10-02 19:54 加速丨世界 阅读(964) 评论(0) 推荐(0)
摘要:前言 安装 下载软件: 官网下载地址:http://dl.mycat.org.cn/1.6.7.4/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz 百度云下载:链接: http 阅读全文
posted @ 2020-10-02 19:51 加速丨世界 阅读(391) 评论(0) 推荐(0)