协程-初探

目录 1.协程定义 2.进程,线程,协程 3.协程优点 3.1.内存小 3.2.效率高 3.3.减少同步锁 3.4.同步代码思维写异步代码 4.协程的缺点 4.1.无法利用多核资源 4.2.协程中不能有阻塞操作 4.3.CPU密集型不是长处 5.Java实现协程(Kilim...

2019-08-17 20:33:06

阅读数 3

评论数 0

一分钟了解DHCP

目录 DHCP是什么 有什么作用 为什么需要DHCP DHCP的过程 DHCP是什么 DHCP动态主机配置协议 有什么作用 动态的为新加入本网络的主机分配ip地址 为什么需要DHCP 假设在没有DHCP的年代,我的电脑带入了公司,想要上网,那么要经历什么样的步骤呢 ...

2019-08-10 22:08:37

阅读数 4

评论数 0

一分钟了解网卡知识

ip addr命令 网卡中的inet是ip地址,能看到子网掩码 例如 10.20.53.115/24 网卡中的link/ether 这个是Mac地址,一个网卡的物理地址,16进制 6byte 全球唯一 eth0 网卡ip后面是global,代表这个网卡可以对外通信,接收各地的包 lo 网...

2019-08-10 22:06:59

阅读数 13

评论数 0

一文看懂JDK12中新版垃圾回收器-Shenandoah GC

目录 1.简介 2.流程 3.实现 3.1.GC 前 3.2.GC 疏散阶段(Concurrent Evacuation) 3.3.GC 更新引用阶段(Concurrent Update References) 3.4.GC更新引用阶段(Final Update Refs) 4.对...

2019-05-18 13:36:09

阅读数 188

评论数 0

长尾请求

1.什么是长尾? 长尾请求一般是指明显高于均值的那部分占比较小的请求。 业界关于延迟有一个常用的P99标准, 也就是99%的请求延迟要满足在一定耗时以内, 1%的请求会大于这个耗时, 而这1%就可以认为是长尾请求。 2.长尾会导致什么危害 假设,一个服务B,有1%的可能性响应时间大于1s...

2019-04-14 22:01:43

阅读数 141

评论数 0

InnoDB怎么解决幻读的?

1.结论 首先说结论,在RR的隔离级别下,Innodb使用MVVC和next-key locks解决幻读,MVVC解决的是普通读(快照读)的幻读,next-key locks解决的是当前读情况下的幻读。 2.幻读是什么 事务A,先执行: update table set name=“h...

2019-04-03 20:39:52

阅读数 446

评论数 1

服务等级协议SLA到底是在说什么?

SLA(Service Level Agreement)服务等级协议 它描述是双方的一种约定,是一种服务可用性的指标。服务可用性也是用百分比表示,但是与TP线含义不同 tp99%表示 满足99%的请求所用的最大响应时间 可用性99%表示一定时间内提供服务的停机时间。 拿一年为例 1年 =...

2019-03-27 22:16:19

阅读数 676

评论数 0

为什么Caffeine比Guava好?

目录 1.缓存淘汰算法 1.1.FIFO 1.2.LRU 1.3.LFU 2.几种缓存的实现 2.1.原生Java 2.2.Guava 2.3.Caffeine 3.参考资料 1.缓存淘汰算法 1.1.FIFO 先进先出:最先进入的缓存被最先淘汰掉,这个基本不会有人用来...

2019-03-27 22:13:45

阅读数 796

评论数 0

运行期间动态切换Redis数据库

public void selectDB(int db) { LettuceConnectionFactory factory = (LettuceConnectionFactory) redisTemplate.getConnectionFacto...

2019-03-06 23:15:33

阅读数 246

评论数 0

Mockito快速使用教程

1. 什么是 Mockito Mockito 是一个强大的用于 Java 开发的模拟测试框架, 通过 Mockito 我们可以创建和配置 Mock 对象, 进而简化有外部依赖的类的测试.   2. 为什么使用Mockito 我们系统一般的功能是controller->...

2019-02-15 19:49:24

阅读数 1103

评论数 0

Redis-单机数据库的实现-数据库原理

目录 1. 服务器中的数据库 2. 数据库键空间 2.1. 读写空间时的维护操作 3. 过期时间 4. 过期删除策略 4.1. 定时删除 4.2. 惰性删除 4.3. 定期删除 4.4. Redis删除策略 5. AOF、RDB和复制功能对对过期键的处理 5.1. RDB ...

2019-01-23 11:30:18

阅读数 125

评论数 0

流控神器-Sentinel-资源节点树的构成(NodeSelectorSlot)

目录   1. 概述 2. 一些需要知道的前提 2.1. Resource 2.2. Context 2.3. Entry 2.4. Node 3. 深入分析 3.1. demo启动 3.2. 创建Context 3.3. 创建Entry 3.4. 执行NodeSelect...

2019-01-20 23:52:02

阅读数 152

评论数 0

流控神器-Sentinel-工作原理

Sentinel 是面向分布式服务架构的轻量级流量控制框架,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助您保护服务的稳定性。   1. Sentinel资源&规则 我们说的资源,可以是任何东西,服务,服务里的方法,甚至是一段代码。使用 Sen...

2019-01-17 17:24:20

阅读数 2640

评论数 1

Redis-数据结构与对象-对象

1. 作用 Redis使用对象作为五种不同类型的底层实现,字符串,列表,哈希,集合,有序集合等 而对象是基于之前的分析的数据结构创建的。每个对象都至少用到一种数据结构,这意味着,Redis五大类型,底层实现是可以有多种实现的,这方便在不同场景下选择合适的底层结构,优化性能 在Redis中,键...

2019-01-17 17:08:05

阅读数 7091

评论数 9

Redis-数据结构与对象-压缩列表

1. 作用 压缩列表是列表键和哈希键的底层实现之一 当一个列表键只包含少量列表项,并且每个列表要么就是小整数值,要么就是长度比较短的字符串,那么使用压缩列表作为底层实现 当一个哈希键只包含少量键值对,而且每个键值对的键和值要么是小整数值要是就是长度比较短的字符串,那么底层实现是压缩列表  ...

2019-01-17 17:04:59

阅读数 116

评论数 0

Redis-数据结构与对象-整数集合

1. 作用 整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多,Redis会使用整数集合作为集合的底层实现   2. 数据结构 typedef struct intset{     //编码方式     uint32_t encoding;   ...

2019-01-17 17:03:17

阅读数 76

评论数 0

Redis-数据结构与对象-跳跃表

1. 作用 跳跃表在Redis中主要运用在有序集合和集群节点用作内部数据结构   2. 数据结构 typedef struct zskiplist{     zskiplistNode *header; //跳跃表头节点     zskiplistNode *tail;   //跳跃...

2019-01-08 11:57:57

阅读数 65

评论数 0

Redis-数据结构与对象-字典

1. 作用 字典类似Java中的Map 在Redis中用在做数据库底层和哈希键的使用 例如  SET  msg  “redis”   msg就是键,redis就是值,底层就是保存在字典中 当一个哈希键包含的键值对比较多,又或者键值对中的元素都是比较长的字符串,Redis会使用字典作为哈希键...

2019-01-04 16:31:49

阅读数 107

评论数 0

Redis-数据结构与对象-链表

1. 作用 Redis中链表被广泛运用在很多地方,例如 列表键,发布订阅,慢查询,监视器,Redis服务器本身还是要链表保存多个客户端状态信息,以及运用链表构建客户端输出缓冲区 2. 数据结构 typedef struct listNode{     //前置节点     struc...

2019-01-04 16:30:08

阅读数 97

评论数 0

Redis-数据结构与对象-简单动态字符串

1. Redis中的String 在Redis中没有使用c语言的字符串,而是使用了一种叫做简单动态字符串的数据结构,简称SDS,而c中的字符串在Redis只有字面量,且无需对字符串内容修改的时候才使用,其他时候都是使用SDS 例如  set msg “redis”  其中msg和”redis“...

2019-01-03 19:41:31

阅读数 95

评论数 0

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