自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(376)
  • 资源 (6)
  • 收藏
  • 关注

原创 使用Selenium永久修改Chrome配置[Python版本]

背景使用Selenium可以非常方便的模仿用户操作浏览器的行为(Chrome,Firefox…)等,对于如何选择页面元素,以及如何操作各种页面元素(输入框,下拉框)类型Selenium支持的都非常到位,这些基本的操作本文不再阐述,具体可以参考:http://www.selenium.org.cn/网上找到大多数能找到的教程都是基于session机制做的演示,既脚本中对浏览器的设置只对当前sessio能有效,当重启浏览器时设置就会被还原,本文主要讲述如何永久设置Chrome浏览器的配置操作说明假设需要

2020-08-11 23:58:11 2073 1

原创 HTTPS学习笔记:(3)一文彻底了解PKI与证书

1. PKIPKI(public key infrastructure)的目标是实现不同成员在不见面的情况下进行安全通信,采用的模型是基于证书颁发机构( certification authority或certificate authority, CA)签发的证书。PKI体系结构如下图所示:订阅人:指那些需要证书来提供安全服务的团体。登记机构:主要是完成一些证书签发的相关管理工作。可以...

2019-12-13 12:01:28 3550 1

原创 Pika部署-基于Codis部署Pika的高可用集群

1. 说明关于Codis的介绍可参见:https://blog.csdn.net/eric_sunah/article/details/1034554872. 部署流程2.1 Codis编译Pika Sharding的介绍:https://github.com/Qihoo360/pika/wiki/Pika-Sharding-Tutorialspika 兼容codis 方案说明目前只...

2019-12-12 15:30:44 3144

原创 Redis集群之:Codis介绍,可用集群部署与代码开发实战

1. 概述Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大...

2019-12-09 11:52:10 1099

转载 Redis+Twemproxy+HAProxy集群

转自:https://blog.csdn.net/shmilychan/article/details/734338041. Redis主从模式Redis数据库与传统数据库属于并行关系,也就是说传统的关系型数据库保存的是结构化数据,而Redis保存的是一些所谓的 临时 数据,因为Redis具备一项很强的功能 持久化数据 ,发现Redis好像也可以做一些传统数据库的开发。但是现在Redis除...

2019-12-05 17:47:56 830

原创 HTTPS学习笔记:(2)通过Wireshark分析HTTPS握手过程与协议概述

TLS是一种密码学协议,用于保证两者之间的会话安全。整个SSL/TLS协议内容太多,本文只从握手,加密,套件等方面对TLS 1.2进行简要总结。协议详细内容,可以参见:RFC:http://tools.ietf.org/html/rfc5246CLOUDFLARE:https://www.cloudflare.com/learning/ssl/what-is-ssl/1. 握手(Han...

2019-12-05 11:29:03 1570

原创 HTTPS学习笔记:(1)入门介绍

前言HTTPS包含的知识体系过于庞大,很难通过一篇文章进行介绍,本系列笔记主要基于<<HTTPS权威指南>>而做的一个读书笔记,通过阅读该书与自己的一些感悟从多个方面对HTTPS进行的总结。关于快速入门,可以先看看:https://blog.csdn.net/eric_sunah/article/details/103144744背景随着互联网行业的发展,HTTP协...

2019-12-04 23:03:18 487

转载 一步一步理解HTTPS

本文转载自:http://showme.codes/2017-02-20/understand-https/本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有的对HTTPS的理解,这样更利于“还原”过程。我们先不了聊HTTP,HTTPS,我们先从一个聊天软件说起,我们要实现A能发一...

2019-11-19 16:06:15 766

原创 算法快学笔记(十八):史上最全查找算法总结

1. 简介查找算是工作过程中运用最广泛的操作了,操作系统读取文件时需要查找,从数据库读取数据时需要查找…本文将对常见的查找算法进行总结。2. 常见算法2.1 顺序查找基本思想:该算法简单粗暴,从头(或是最后)开始遍历,找到要查的数据就停止遍历并返回结果,如果遍历完也没有找到就是查找不成功。时间复杂度:O(n)2.2 有序表2.2.1 二分查找基本思想:将表中间位置记录的关键...

2019-11-15 11:57:33 1630

原创 算法快学笔记(十七):史上最全排序算法总结

1. 简介本文对常见排序算法进行总结2. 排序算法2.1 冒泡排序该算法比较简单,几乎所有语言涉及到算法时,都会涉及到冒泡算法。算法思路:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没...

2019-11-15 11:48:53 3214 8

转载 图解归并排序

基本思想  归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之  可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式...

2019-11-15 11:42:50 904

转载 图解堆排序

预备知识堆排序  堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆  堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,...

2019-11-15 11:15:09 697 2

转载 图解算法---希尔排序(转载)

前情回顾:直接插入排序(对插入排序不熟悉的建议先阅读此文)一天,一尘拿着扑克自己在那玩,刚被师傅看见了首先它把较大的数据集合分割成若干个小组(逻辑上分组),然后对每一个小组分别进行插入排序,此时,插入排序所作用的数据量比较小(每一个小组),插入的效率比较高可以看出,他是按下标相隔距离为4分的组,也就是说把下标相差4的分到一组,比如这个例子中a[0]与a...

2019-11-15 10:38:18 790

原创 算法快学笔记(十六):动态规划

1. 介绍前文提到,对于背包问题与旅行商问题,计算的复杂度是随着计算数据的增加呈现指数级增长的,贪婪算法算可以处理,但得到的并不是最优解。动态规划的主要思路是先解决子问题,在逐步解决大问题。本文将通过两个例子介绍动态规划的推算思路。2. 背包问题2.1 思路通过动态规划方法解决背包问题的流程如下:准备一个表格,商品作为Y轴,背包重量作为x轴使用下面的公式算出价格且更新到表格里...

2019-11-13 17:14:31 1837 3

原创 算法快学笔记(十五):贪婪算法与NP完全问题

1. 贪婪算法1.1 算法思路贪婪算法的思想很简单:每步都采取最优的做法,以教室调度为例进行说明该算法步骤。假设有以下课表,希望将尽可能多的课程安排在同一个教室:由于不同课的开始与结束时间存在冲突,所以不可能把所有课放在一个教室上。使用贪心算法的解决思路如下:选出结束最早的课,它是上的第一堂课。 此时选择美术课接下来选择第一堂课结束后才开始的课。同样,你选择结束最早的课,这将是要第...

2019-11-13 16:28:41 1719

原创 算法快学笔记(十四):图的最小生成树算法

1. 介绍最小生成树的应用场景很广,例如电信公司需要将9个村庄进行网络连接,村庄间的距离都不相同,怎么连接才能达到成本最小了?村庄结构图如下:V0-V10分别表示村庄,节点间的权重代表距离,连接所有节点的总距离最小,就可以让成本更低。定义:把构造连通整个图的最小代价生成树称为最小生成树。2. 相关算法普利姆与克鲁斯卡尔算法都是贪心算法2.1 普利姆(Prim)算法2.1.1 原理...

2019-10-24 15:37:34 2645 2

原创 算法快学笔记(十三):狄克斯特拉(Dijkstra)算法原理与实现

1. 简介广度优先算法可以找出段数最少的路径,但是对于路径上带权重的图,想要找出最快的路径,则需要使用狄克斯特拉算法。2. 原理为了说明狄克斯特拉算法的原理,使用换钢琴的的例子来做说明.假设Rama想拿自己的乐谱换架钢琴:Alex说:“这是我最喜欢的乐队Destroyer的海报,我愿意拿它换你的乐谱。如果你再加5美元,还可拿乐谱换我这张稀有的Rick Astley黑胶唱片。”Amy...

2019-06-13 11:59:43 2548 1

原创 JanusGraph批量导入数据代码总结

这里写自定义目录标题说明1. Json导入到本地TinkerGraph1.1 配置1.2 样例Json1.3 代码1.4 文件校验2. CSV导入到本地TinkerGraph2.1 配置2.2 样例CSV2.3 代码2.4 文件校验3. Json导入到分布式存储(berkeleyje-es)3.1 配置3.2 样例Json3.3 代码3.4 验证说明本文中的代码基于janusgraph 0.3...

2019-06-03 19:48:38 9004 10

原创 算法快学笔记(十二):图的广度优先搜索(BFS-Breadth First Search)

1. 介绍广度优先搜索(BFS)是一个经典的图算法,该算法能够找出两样东西之间的最短距离!使用广度优先搜索可以:编写国际跳棋AI,计算最少走多少步就可获胜;编写拼写检查器,计算最少编辑多少个地方就可将错拼的单词改成正确的单词,如将READED改为READER需要编辑一个地方;根据你的人际关系网络找到关系最近的医生。要说明的是,广度优先搜索是一种用于图的查找算法,可帮助回答两类问题。...

2019-03-08 15:08:50 943

转载 算法快学笔记(十一):图的深度优先搜索(DFS-Depth-First-Search)

转载自:https://www.cnblogs.com/skywang12345/p/3711483.html1. 介绍图的深度优先搜索(Depth First Search),是图的一种搜索方法,和树的先序遍历比较类似。它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶...

2019-03-08 15:07:02 1083

原创 算法快学笔记(十):截图“图”的面纱

1. 介绍数据结构领域,图(Graph)是一种复杂的非线性结构,在图结构中,每个元素都可以有零个或多个前驱,也可以有零个或多个后继,也就是说,元素之间的关系是任意的。本文对图的基础支持做一个简单的总结。2. 定义2.1 图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。2.2 图...

2019-02-12 11:00:58 722

转载 算法快学笔记(九):红黑二叉树

转载自:https://www.tianxiaobo.com/2018/01/11/红黑树详细分析/ 1.红黑树简介红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它是由 Rudolf Bayer 于1978年发明,在当时被称为对称二叉 B 树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修...

2019-01-14 19:06:15 2156 2

转载 算法快学笔记(八):一次性学习和B相关的树

本文转自:https://www.cnblogs.com/lj820403/p/7416423.html1. 说明常见的B系列树包括,B树、B-树、B+树、B*树,本文对这些树做一个总结2. B树即二叉搜索树:所有非叶子结点至多拥有两个儿子(Left和Right);所有结点存储一个关键字;非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索...

2019-01-14 18:45:22 570

原创 算法快学笔记(七):赫夫曼,赫夫曼树,赫夫曼编码

1. 赫夫曼鼎鼎大名赫夫曼树以及赫夫曼编码都是出自赫夫曼这位大牛之手,为表致敬先简单的介绍赫夫曼大神。赫夫曼,全名David Albert Huffman,1925年8月9日-1999年10月7日,生于美国俄亥俄州,计算机科学家,为霍夫曼编码的发明者。1951年,赫夫曼在麻省理工学院(MIT)攻读博士学位,他为了完成一篇题为&amp;lt;&amp;lt;查找最有效的二进制编码&amp;gt;&amp;gt;的报告,研究出...

2019-01-11 14:05:06 1075 1

原创 算法快学笔记(六):揭开“树”的面纱

算法世界中,树结构是较大的一块知识体系,从二叉树,到B树,到红黑树,赫夫曼树等耳熟能详的算法都可以归纳到“树”这一体系。本文先只对树以及二叉树的基本概念进行阐述,更多算法的讲解请参阅后续博文。1. 树树是一种数据结构,它是由n(n&gt;=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树。一颗简单的树如下:数的定义很简单,但是有两点需要强调:N&gt...

2019-01-11 11:36:30 593

原创 算法快学笔记(五):散列表

1. 介绍当需要根据给定的值需要快速得到想要值的时候,散列表是一个非常有用的数据结构,假设你在一家杂货店上班。有顾客来买东西时,你得在一个本子中查找价格,如果本子的内容不是按字母顺序排列的,你可以使用简单查找法,从头到尾以一个一个的找,时间复杂度为O(n),如果本子的内容是按字母顺序排列的,可使用二分查找来找出苹果的价格,这需要的时间会短一些,为O(log n)。二分查找的速度非常快。但作为...

2018-12-30 16:19:17 679

原创 算法快学笔记(四):快速排序的原理与实现

1. 原理介绍快速排序是一种排序算法,速度比选择排序快得多,其主要基于“分而治之”的思想对集合进行排序,本文将对该算法进行分析。2. 分而治之(D&amp;C)的思想D&amp;C主要指利用递归的方式来不断的缩小需要处理问题的规模,最终使问题容易解决。使用D&amp;C解决问题的过程包括两个步骤。(1) 找出递归的终止条件,这种条件必须尽可能简单(称为基线条件)。(2) 不断将问题分解...

2018-12-21 17:32:30 1884

原创 算法快学笔记(三):选择排序的原理与实现

1. 原理介绍选择排序是个简单的排序,思路主要通过多次遍历待排序的集合,每次弹出最大/小值并放入新的集合,直到原始集合为空。举个例子:假设要对A=[1,2,5,9,3]按照升序的方式进行排序,步骤与结果如下从A中找出最大值,将其pop,并放入B中,执行后的结果如下:A=[2,5,9,3]B=[1]重复执行第一部A=[5,9,3]B=[1,2]重复执行第一部A=[...

2018-12-21 17:29:12 1003

原创 算法快学笔记(二):数组与链表

1. 说明当程序需要将数据存储到内存时,计算机会给你一个存储地址。需要存储多项数据时,有两种基本方式——数组和链表。但它们并非都适用于所有的情形,因此知道它们的特性很重要。本文将对数组与链表的原理与优缺点进行总结。2. 数组使用数组存储多个元素的时候,数组中元素的地址时刻都是挨在一起的,为了便于理解,以看电影为例进行说明。你和你小伙伴的关系都非常的好,如果一起看电影必须要座位要挨在一起,...

2018-12-21 17:23:51 844

原创 算法快学笔记(一):算法入门

1. 算法的定义“算法”一词在不同的书籍以及网站上可能会存在一些差异,但是下面的定义个人觉得最为贴切:1. 算法代表着用系统的方法描述解决问题的策略机制2. 能够对一定规范的输入,在有限时间内获得所要求的输出3. 一个算法的优劣可以用空间复杂度与时间复杂度来衡量2. 论优秀算法的重要性在很多场景下,数据规模越大,越能体现优秀算法的价值,接下来将以猜数游戏为例进行说明优秀算法的重要性。...

2018-12-21 17:16:49 5462

原创 Netty框架学习之(五):细说数据容器-ByteBuf

1. 简介字节是网络数据的基本单位。 Java NIO 提供了 ByteBuffer 作为字节容器,但是这个类使用起来过于复杂,而且也有些繁琐。Netty使用了即易于使用又具备良好性能的ByteBuf来替代ByteBuffer。本文将对ByteBuffer做一个简单的总结。2. 运作方式与使用模式2.1 运作方式因为所有的网络通信都涉及字节序列的移动, 所以高效易用的数...

2018-05-29 16:07:45 15193

转载 Netty框架学习之(四):线程模型

转载自:https://www.cnblogs.com/TomSnail/p/6158249.html1. Proactor和ReactorProactor和Reactor是两种经典的多路复用I/O模型,主要用于在高并发、高吞吐量的环境中进行I/O处理。 I/O多路复用机制都依赖于一个事件分发器,事件分离器把接收到的客户事件分发到不同的事件处理器中,如下图:1.1 select,...

2018-05-24 16:51:23 3799

原创 Netty框架学习之(三):细说Netty的数据传输

概述使用Java 自带的API开发IO系统时,如果需要对传输的方式进行切换,例如从阻塞传输切换到非阻塞传输, 那么可能会由于两种方式的API不兼容问题需要大面积的修改代码。然而 Netty 则为它所有的传输方式提供了一个通用 API,这使得只需要修改一下对象申明的类型就能完成传输方式的切换,例如从OIO切换到NIO只需要如下操作:OIO的代码:EventLoopGroup group...

2018-05-24 16:15:52 9941

原创 Netty框架学习之(二):Netty组件简介

1. 概览从高层次的角度来看Netty, 它主要为需要开发高性能应用的开发者解决了“技术”的和“体系结构”的问题。首先,它的基于 Java NIO 的异步的和事件驱动的实现,保证了高负载下应用程序 性能的最大化和可伸缩性。其次, Netty 也包含了一组设计模式,将应用程序逻辑从网络层解耦,简化了开发过程,同时也最大限度地提高了可测试性、模块化以及代码的可重用性。为了可以更好的研究 Ne...

2018-05-23 18:47:19 12566 5

原创 Netty框架学习之(一):Netty框架简介

1. 简介官方定义为:”Netty 是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器 和客户端”,按照惯例贴上一张High Level的架构图:纵观Java系的多种服务器/大数据框架,都离不开Netty做出的贡献,本文对Netty做一个简单的概述2. 主要特性Netty有很多重要的特性,主要特性如下: - 优雅的设计 - 统一...

2018-05-23 18:43:19 153763 12

原创 ElasticSearch学习总结(八):插件的开发

本文主要总结Elasticsearch 自定义 REST 接口的插件开发流程。1. 插件介绍本插件逻辑比较简单,主要用来返回包含指定前缀的节点列表。2. 代码说明插件主要包括两部分的内容,一部分用来对插件的注册,另一部分负责对业务逻辑的处理插件注册部分:public class CustomerRestActionPlugin extends Plugin im...

2018-03-06 14:59:13 3361

原创 ElasticSearch学习总结(七):性能优化总结

本文主要总结Elasticsearch性能优化方面的相关内容1. 概述性能优化是个涉及面非常广的问题,不同的环境,不同的业务场景可能会存在不同的优化方案,本文只对一些相关的知识点做简单的总结,具体方案可以根据场景自行尝试。1.1 性能测试如果需要做性能调优,性能基准测试的工具必不可少,这里可以选择Rally1.2 热点线程当集群缓慢,使用大量的CPU资源时,可以...

2018-03-06 14:57:45 3921

原创 ElasticSearch学习总结(六):集群管理总结

本文主要总结和集群管理的相关内容。1. 发现和恢复模块节点的启动主要包括两个过程:(1)发现 (2)恢复1.1 发现(discovery)当启动ES节点的时候,最先做的事情就是查找一个拥有相同集群名称且网络上可见的主节点,如果找到,这个新启动的节点就加入那个已经存在的集群,如果没有找到,这个节点就将自己选举为主节点(前提是配置允许)。负责上述过程的就是发现模块,该模块主...

2018-03-05 15:51:17 1441

原创 ElasticSearch学习总结(五):底层索引控制

本文主要总结底层索引控制的一些知识点1. 底层存储目录(Store Directory)该模块主要用来控制索引数据的读写方式,Lucene所有在磁盘上的操作都是通过store模块来处理的,目前系统中有4种store类型,默认情况下,Elasticsearch会更具操作环境选择一个最佳的类型。4种类型如下fs 默认的配置。将根据操作环境选择最佳配置:Windows 32bit...

2018-03-02 17:42:34 1267

原创 ElasticSearch学习总结(四):分布式特性

本文主要对Elasticsearch的分布式相关特性进行总结1. 分片与副本1.1 分片&amp;副本索引分片机制用来存储超过单个节点存储容量的数据,分片副本用来应对不断攀升的吞吐量以及确保数据的安全性。当一个节点的主分片丢失,ElasticSearch可以把任意一个可用的分片副本推举为主分片。在默认情况下,ElasticSearch会创建一个分片副本。然而分片副本的数量可...

2018-03-02 11:05:30 1030

codis for pika 二进制包

针对PIKA编译的Codis二进制文件,版本信息如下: Codis版本:3.2 Pika版本:3.0.16

2019-12-11

Netty in Action中文版(高清带目录-可拷贝-中文)

Netty in Action的高清中文版PDF,带目录。该资源仅仅用于学习用途,请勿用于商业用途

2018-03-06

iReport-Ultimate-Guide-3.5

iReport-Ultimate-Guide-3.5

2013-03-02

java7虚拟机规范

最近在学习jvm,关于这方面的书不是很多,虽然讲的还算不错,可是还有些关键的地方没有说清楚,后来才知道有The Java Virtual Machine Specification 这个东西,原来这才是最纯正的jvm资料,国内很多的书籍大多数也就是把这个文档翻译一下.所以还是选择原版吧.加油

2012-07-21

java7语言规范

如果你觉得一些java教材已经不能满足你求知的渴望,你可以尝试去读一下java技术规范,只有这个里面才是对一些语法最纯正的理解.因为它的作者就是java之父-James Gosling.相信我,读完它不会失望的

2012-07-21

java cook book

java 的经典代码手册,不过是english版本的,可能需要你有一定的英语阅读能力

2012-02-07

空空如也

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

TA关注的人

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