自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(241)
  • 收藏
  • 关注

原创 mysql2

自适应哈希索引是Innodb引擎的一个特殊功能,当它注意到某些索引值被使用的非常频繁时,会在内存中基于B-Tree所有之上再创建一个哈希索引,这就让B-Tree索引也具有哈希索引的一些优点,比如快速哈希查找。这是一个完全自动的内部行为,用户无法控制或配置使用命令查看INSERT BUFFER AND ADAPTIVE HASH INDEX多叉树(multiway tree)允许每个节点可以有更多的数据项和更多的子节点。2-3树,2-3-4树就是多叉树,多叉树通过。

2024-03-05 17:10:15 988

原创 mysql

一 Mysql索引001 Mysql如何实现的索引机制?002 InnoDB索引与MyISAM索引实现的区别是什么?003 一个表中如果没有创建索引,那么还会创建B+树吗?004 说一下B+树索引实现原理(数据结构)讲义InnoDB中的索引方案005 聚簇索引与非聚簇索引b+树实现有什么区别?聚簇索引非聚簇索引006 说一下B+树中聚簇索引的查找(匹配)逻辑007 说一下B+树中非聚簇索引的查找(匹配)逻辑008 平衡二叉树,红黑树,B树和B+树的区别是什么?都有哪些应用场景?009 一个b+树中大概能存

2024-03-05 17:09:16 838

转载 windows系统下启动redis命令

windows系统下启动redis命令

2023-02-24 10:14:56 1063

转载 ETCD介绍—etcd概念及原理方面分析

etcd作为一个受到ZooKeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更专注于以下四点。简单:基于HTTP+JSON的API让你用curl就可以轻松使用。安全:可选SSL客户认证机制。快速:每个实例每秒支持一千次写操作。可信:使用Raft算法充分实现了分布式。分布式系统中的数据分为控制数据和应用数据。etcd的使用场景默认处理的数据都是控制数据,对于应用数据,只推荐数据量很小,但是更新访问频繁的情况。应用场景有如下几类:场景一:服务发现(Service Discovery

2022-04-14 12:15:24 850

转载 redis缓存穿透,击穿和雪崩以及解决方案

一:redis雪崩redis雪崩是指redis在某个时间大量失效,突然造成数据库访问压力急剧增大,像雪崩一样,redis雪崩危害巨大,甚至有可能服务器宕机,给公司造成巨大的经济损失。解决方案:设置超时时间的时候要设置随机值,不要设置固定值 * 缓存雪崩: key在同一时间失效,导致大量请求去访问数据库 * 返回min 和max 之间的一个随机秒数 private Long getRandomExpirationTime(Integer min, Integer max)...

2022-04-14 11:54:11 390

转载 maven install 跳过测试

mvn命令跳过测试:mvn install-Dmaven.test.skip=true 测试类不会生成.class 文件mvn install-DskipTests测试类会生成.class文件使用maven-surefire-plugin跳过测试需要在该插件配置下加:<configuration><skipTests>true</skipTes...

2019-07-09 20:58:40 1313

转载 idea工具maven生命周期clean,compile,install,package区别

idea工具maven projects里面有9种生命周期,今天刚好遇到,顺便分享下自己的理解。生命周期是包含在一个项目构建中的一系列有序的阶段。最常用的两种打包方法:一:clean,package(如果报错,很可能就是jar依赖的问题)二:clean,install9种生命周期:clean,清理,在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目路...

2019-06-28 11:49:37 1480

转载 IDEA+Maven 打jar包

IDEA+Maven 打jar包 (包涵依赖jar)写在前面:​ 这两天一直在整(gu)理(dao)IDEA 用Maven打jar包,网上的教程是各式各样,但是都不能满足我的需求(或者 还没有找个正确的),因此 综合网上的内容 自己整理了一下(以下内容是在mac系统下 win 可能有一些地方不一样)。软件环境:​ IDEA:2017.1.5​ Maven:3.3.9打jar包...

2019-06-28 11:48:19 255

转载 (IDEA) maven项目中常用的生命周期clean、install、package、deploy各自的作用

clean: 清除target目录;install:将工程打包到本地仓库,这时本地项目可以依赖,别人是依赖不了的;package:将项目中的各种文件,比如源代码、编译生成的字节码、配置文件、文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR包;deploy: 将打包的jar文件上传到私服(如果有私服),此时连接私服的人才可以下载依赖。...

2019-06-28 11:42:23 3973

转载 轻量级RPC框架-NIO及Netty简述

文章目录轻量级RPC框架-NIO及Netty简述1.什么是RPC?2.RPC原理3.NIO原理3.1 简介3.2 NIO与传统IO区别NIOOioServer.javaNioServer.java4.高性能NIO框架-Netty4.1 单Handler处理pom导包Netty服务端EchoServerHandlerEchoServerNetty客户端EchoCli...

2019-04-21 23:10:21 262

转载 RPC原理及RPC实例分析

在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。 1 2 3 4 5 6 public class Test { public static void main(String[] args) { ...

2019-04-21 22:04:05 165

转载 【NIO引入】BIO、AIO与NIO的区别

同步异步与阻塞非阻塞的区别1.同步例:买饭:自己亲自去饭馆买饭,这就是同步(自己处理IO读写)2.异步例:买饭:叫外卖送到家,这就是异步(IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS(饭名和地址),OS需要支持异步IO操作API)3.阻塞例:办理业务:一直排队等待(调用会一直阻塞到读写完成才返回)4.非阻塞例:办理业务:抽号后就可以做其他事,如果你等不急...

2019-04-21 21:58:23 238

转载 Netty实践与NIO原理

一、阻塞IO与非阻塞IOLinux网络IO模型(5种)(1)阻塞IO模型所有文件操作都是阻塞的,以套接字接口为例,在进程空间中调用recvfrom,系统调用直到数据包到达且被复制到应用进程缓冲区或发生错误时才返回,期间会一直等待(阻塞)。模型如图:(2)非阻塞IO模型recvfrom从应用层到内核时,如果该缓冲区没数据,直接返回一个EWOULDBLOCK错误,反复轮询检查这个状...

2019-04-21 21:57:42 344

转载 synchronized 是公平锁吗?可以重入吗?详细的来说说 synchronized

公平锁:获取不到锁的时候,会自动加入队列,等待线程释放后,队列的第一个线程获取锁非公平锁:获取不到锁的时候,会自动加入队列,等待线程释放锁后所有等待的线程同时去竞争什么是可重入?同一个线程可以反复获取锁多次,然后需要释放多次回答标题问题:synchronized 是非公平锁,可以重入。在来看几个问题:1、synchronized 加在 static 修饰...

2019-04-20 13:45:04 3242

转载 深入理解JAVA多态原理

之前一直知道多态是什么东西,平时敲代码也经常用到多态,但一直没有真正了解多态底层的运行机制到底是怎么样的,这两天才研究明白点,特地写下来,跟各位同学一起进步,同时也希望各位大神指导和指正。  多态的概念:同一操作作用于不同对象,可以有不同的解释,有不同的执行结果,这就是多态,简单来说就是:父类的引用指向子类对象。下面先看一段代码 1 package polymorphism...

2019-04-20 10:24:43 191

转载 ThreadPoolExecutor线程池参数设置技巧

JDK1.5中引入了强大的concurrent包,其中最常用的莫过了线程池的实现ThreadPoolExecutor,它给我们带来了极大的方便,但同时,对于该线程池不恰当的设置也可能使其效率并不能达到预期的效果,甚至仅相当于或低于单线程的效率。ThreadPoolExecutor类可设置的参数主要有:corePoolSize在创建了线程池后,默认情况下,线程池中并没有任何线程,而是等待...

2019-04-20 08:58:57 4331

转载 线程池ThreadPoolExecutor参数设置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013276277/article/details/82630336以问答形式展开,会更有针对性:1、工作线程是不是越多越好?不是。a、服务器cpu核数有限,所以同时并发或者并行的线程数是有限的,所以1核cpu设置1000个线程是没有意义的。b、线程切换也是有开销的。频...

2019-04-20 08:36:16 915

转载 Redis分布式锁的正确实现方式

前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的...

2019-04-20 08:35:15 125

转载 IO多路复用的三种机制Select,Poll,Epoll

I/O多路复用(multiplexing)的本质是通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作select、poll 和 epoll 都是 Linux API 提供的 IO 复用方式。相信大家都了解了Unix五种IO模型,不了解的可以 => 查看这里[1] blocking...

2019-04-19 11:16:37 532

转载 深入理解 hashcode 和 hash 算法

摘要二进制计算的一些基础知识为什么使用 hashcodeString 类型的 hashcode 方法为什么大部分 hashcode 方法使用 31HashMap 的 hash 算法的实现原理(为什么右移 16 位,为什么要使用 ^ 位异或)HashMap 为什么使用 & 与运算代替模运算?HashMap 的容量为什么建议是 2的幂次方?我们自定义 HashMap 容量最好是...

2019-04-19 09:33:25 267

转载 理解这两点,也就理解了paxos协议的精髓

什么是paxos协议?Paxos用于解决分布式系统中一致性问题。分布式一致性算法(Consensus Algorithm)是一个分布式计算领域的基础性问题,其最基本的功能是为了在多个进程之间对某个(某些)值达成一致(强一致);简单来说就是确定一个值,一旦被写入就不可改变。paxos用来实现多节点写入来完成一件事情,例如mysql主从也是一种方案,但这种方案有个致命的缺陷,如果主库挂了会直接影响业...

2019-04-19 07:43:07 260

转载 为什么重复值高的字段不能建索引(比如性别字段等)

结论(以innodb为例)a、非聚簇索引存储了对主键的引用,如果select字段不在非聚簇索引内,就需要跳到主键索引(上图中从右边的索引树跳到左边的索引树),再获取select字段值b、如果非聚簇索引值重复率高,那么查询时就会大量出现上图中从右边跳到左边的情况,导致整个流程很慢c、如果where值重复率高的字段,select用了limit,只查较少数据,也就是跳的次数很少的...

2019-04-19 07:35:51 4220

转载 ZooKeeper伸缩性

一、ZooKeeper中Observer1.1 ZooKeeper角色经过前面的介绍,我想大家都已经知道了在ZooKeeper集群当中有两种角色Leader和Follower。Leader可以接受client 请求,也接收其他Server转发的写请求,负责更新系统状态。 Follower也可以接收client请求,如果是写请求将转发给Leader来更新系统状态,读请求则由Follower的...

2019-04-19 07:29:18 149

转载 深入浅出Zookeeper(一) Zookeeper架构及FastLeaderElection机制

本文介绍了Zookeeper的架构,并组合实例分析了原子广播(ZAB)协议的原理,包括但不限于Zookeeper的读写流程,FastLeaderElection算法的原理,ZAB如何保证Leader Failover过程中的数据一致性。原创文章,转载请务必将下面这段话置于文章开头处。本文转发自技术世界,原文链接 http://www.jasongj.com/zookeeper/fastle...

2019-04-18 18:31:01 114

转载 Zookeeper选举算法( FastLeader选主)

Zookeeper一致性协议原理ZabZooKeeper为高可用的一致性协调框架,自然的ZooKeeper也有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法, ZAB(ZooKeeper Atomic Broadcast ) 全称为:原子消息广播协议;ZAB可以说是在Paxos算法基础上进行了扩展改造而来的,ZAB协议设计了支持崩溃恢复,ZooKeeper使...

2019-04-18 18:24:33 371

转载 zookeeper中的ZAB协议理解

ZAB协议ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据ZAB协议是实现分布式系统数据一致性。zookeeper根据ZAB协议建立了主备模型完成zookeeper集群中数据的同步。这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事物请求(或写操作),然后leader服务器将客户端的写操作数据同步到所...

2019-04-18 18:08:16 139

转载 让你彻底理解Synchronized

1. synchronized简介在学习知识前,我们先来看一个现象:public class SynchronizedDemo implements Runnable { private static int count = 0; public static void main(String[] args) { for (int i = 0; i &lt...

2019-04-17 18:31:10 86

转载 关于Synchronized方法使用问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linglaoli/article/details/78595310前言今天遇到一个问题(项目),客户测试,插入2张SIM卡重启,只有卡1收到短信。正常情况是收到2条短信,此问题是偶现,概率不高。代码关键代码如下,通过for循环每张卡发送短信。List<Subscriptio...

2019-04-17 18:27:18 234

转载 Java中使用同步关键字synchronized需要注意的问题

在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。关键是,不要认为给方法或者代码段加上synchronized就万事大吉,看下面一段代码: 1 2 3 4 5 6 7 8...

2019-04-17 18:25:25 190

转载 线程池(ThreadPoolExecutor ) 的关闭与监控

本文导读本文继续深入线程池理论部分,如关闭线程池,线程池统计等参考文章:《线程池理论 之 线程池饱和策略 与 工作队列排队策略》、《线程池(ThreadPoolExecutor) 创建与使用》关闭线程池可以通过调用线程池的shutdown或shutdownNow方法来关闭线程池。原理都是遍历线程池中的工作线程,然后逐个调用线程的interrupt方法来中断线程,所以无法响应中断的任务...

2019-04-17 16:39:13 1255

转载 深入浅出NIO之Channel、Buffer

前言Java NIO 由以下几个核心部分组成:1 、Buffer2、Channel3、Selector传统的IO操作面向数据流,意味着每次从流中读一个或多个字节,直至完成,数据没有被缓存在任何地方。NIO操作面向缓冲区,数据从Channel读取到Buffer缓冲区,随后在Buffer中处理数据。本文着重介绍Channel和Buffer的概念以及在文件读写方面的应用和内部实现原...

2019-04-17 15:25:39 223

转载 深入浅出NIO之Selector实现原理

前言Java NIO 由以下几个核心部分组成:1 、Buffer2、Channel3、Selector传统的IO操作面向数据流,意味着每次从流中读一个或多个字节,直至完成,数据没有被缓存在任何地方。NIO操作面向缓冲区,数据从Channel读取到Buffer缓冲区,随后在Buffer中处理数据。本文着重介绍Channel和Buffer的概念以及在文件读写方面的应用和内部实现原...

2019-04-17 15:23:59 650 1

转载 Java NIO——直接缓存和非直接缓存

1.非直接缓存区:通过allocate()方法分配的缓存区,将缓存区建立在JVM的内存中2.直接缓存区:通过allocateDirect()方法分配直接缓存区,将缓存区建立在物理内存中,可以提高效率,但是消耗的内存非常大,并且只有在程序的垃圾回收机制去回收,所以对于映射文件的操控性极差3.文档讲解:4.代码示例:@Testpublic void test3(){ //...

2019-04-17 13:20:25 255

转载 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型

版权声明:本文为博主原创文章,未经博主允许不得转载,转载请注明出处. 博主博客地址是 http://blog.csdn.net/liubenlong007 https://blog.csdn.net/fgyibupi/article/details/54692241概述前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺点以及使用场景,最终结合本身项目的实际情况选择了使用dubb...

2019-04-17 10:37:55 200

转载 Thrift 的原理和使用

thrift的原理和使用Thrift 架构Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过IDL(Interface Definition Language,接口定义语言)来定义RPC(Remote Procedure Call,远程过程调用)的接口和数据类型,然后通过thrift编译器生成不同语...

2019-04-17 10:13:19 189

转载 http的长连接和短连接

1.以前的误解很久之前就听说过长连接的说法,而且还知道HTTP1.0协议不支持长连接,从HTTP1.1协议以后,连接默认都是长连接。但终究觉得对于长连接一直懵懵懂懂的,有种抓不到关键点的感觉。今天通过一番研究,终于明白了这其中的奥秘。而之前,也看过长连接相关的内容,但一直都是云里雾里的。这次之所以能在这么短的时间里搞清楚,和自己技术的沉淀密不可分。因此,这里借着这个机会,再次强调一下,千万...

2019-04-16 16:00:26 2023 1

转载 你了解Java内存模型么(Java7、8、9内存模型的区别)

Java内存模型是每个java程序员必须掌握理解的,这是Java的核心基础,对我们编写代码特别是并发编程时有很大帮助。由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。首先,我们回顾一下Java程序执行流程:如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类...

2019-04-07 22:56:47 692

转载 第一次有人把“分布式事务”讲的这么简单明了

不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。有了事务,你去网上购物,扣款即产生订单交易。事务的具体定义事务提供一种机制将一个活动涉及...

2019-04-03 08:49:36 145

转载 一致性Hash问题

https://blog.csdn.net/xlgen157387/article/details/79544524最近有小伙伴跑过来问什么是Hash一致性算法,说面试的时候被问到了,因为不了解,所以就没有回答上,问我有没有相应的学习资料推荐,当时上班,没时间回复,晚上回去了就忘了这件事,今天突然看到这个,加班为大家整理一下什么是Hash一致性算法,希望对大家有帮助!经常阅读我...

2019-04-03 08:48:37 279

转载 使用JAVA CompletableFuture的20例子

https://segmentfault.com/a/1190000013452165?utm_source=index-hottest前言Java 5 并发库主要关注于异步任务的处理,它采用了这样一种模式,producer 线程创建任务并且利用阻塞队列将其传递给任务的 consumer。这种模型在 Java 7 和 8 中进一步发展,并且开始支持另外一种风格的任务执行,那就是将任务的数据...

2019-03-22 10:05:27 185

空空如也

空空如也

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

TA关注的人

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