自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 Redis模块化介绍意译与解析

笔者博客地址: https://charpty.com解析难懂之处,并提供更多的代码示例帮助理解。原文还有不少章节是缺失的,这一部分我先将原文补齐,PR通过后我会补充。The modules documentation is composed of the following files:INTRO.md (this file). An overview about Redis M...

2018-12-09 19:39:09 482

原创 自己动手写JVM-解析ClassFile

笔者博客地址:https://charpty.com本文代码委托在:https://github.com/charpty/cjvm许多同学看了不少关于JVM和GC相关的书,很多概念都熟悉了,但本着经历过才能身入其境的原则,我觉得必须要自己写一写,体会下前人的思想和辛苦,才能对所学JVM和GC相关知识进行实践性总结。业余时间的乐趣型项目,使用C语言实现的一个可高效运行的Java虚拟机,包括...

2018-12-09 19:33:24 1676

原创 手写一棵红黑树

笔者博客地址:https://charpty.com我记得面试的时候,经常问问别人hashmap实现,说着说着就免不了讲讲红黑树,平常都是用现成的,考察别人红黑树也只是看下是否喜欢专研、有学习劲。有一次有个同学告诉我他讲不清楚但是可以写一下,很惭愧,全忘了,一下子让我写一个,伪代码都够呛了,跑起来更不行。我给自己想了个简单的记法,父红叔红就变色,父红叔黑靠旋转,删黑两孩很麻烦,叔黑孩最很...

2018-10-30 21:14:15 12755 4

原创 Redis模块化介绍意译与解析

笔者博客地址: https://charpty.com原文:https://redis.io/topics/modules-intro解析难懂之处,并提供更多的代码示例帮助理解。原文还有不少章节是缺失的,这一部分我先将原文补齐,PR通过后我会补充。The modules documentation is composed of the following files:INTR...

2018-10-21 15:09:20 1337

原创 Redis跳表与有序集合实现

笔者博客地址: https://charpty.com为了大家看整体源码方便,我将加上了完整注释的代码传到了我的github上供大家直接下载:https://github.com/charpty/redis4.0-source-reading在Redis中提供了有序集合,从它的命令之多就可以知道它的功能是比较强大的,当然实现也是比较复杂的,ZSET底层使用跳表SKIP LIST实现,...

2018-10-21 15:06:01 1624 2

原创 Redis面试问点啥

总是写严肃的东西,也写点轻松愉快的,谈谈Redis,总结下自己面试以及网上的一些Redis面试经验。笔者博客:https://charpty.com一进门便是游戏开始了我总感觉面试和狼人杀游戏差不多,一拿到牌游戏就开了,一样的,当面试官踏进门游戏便开始了。咱们假设只是问Redis相关的哈。不知道许多面试官有没有中招,第一题总是Redis有几种数据类型,D:–Redis有几种数据类型...

2018-10-15 23:20:34 220

原创 Redis4.0源码解析--3种线性表

笔者博客地址: https://charpty.com/blog为了大家看整体源码方便,我将加上了完整注释的代码传到了我的github上供大家直接下载: https://github.com/charpty/redis4.0-source-reading上一章讲了SDS动态字符串,大概讲了看的方向,其实更深层次的还是要请读者自己看源码,我将源码加上了注释,这样大家看起来也更加

2017-07-01 23:23:03 1921

原创 Redis4.0源码解析--动态字符串SDS

笔者博客地址:https://charpty.com/blogRedis官方在2016年12月发布了4.0-rc1版本,从此揭开了4.0版本的序幕,但到目前为止(2017年6月)还没有正式发布4.0版本提供给生产环境使用,笔者在2.8时代开始接触Redis,在做的几

2017-06-11 15:25:56 1529

原创 F5做了NAT出来的TCP包被服务器丢弃

前言笔者前段时间碰到一个网络问题,一直耿耿于怀。简单的网络图如下 原文地址:https://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux 参考翻译:http://www.cnxct.com/coping-with-the-tcp-time_wait-state-on-busy-linux-servers-in

2017-04-09 23:23:51 1352

原创 JVM类加载1-加载

笔者博客地址:https://charpty.comJVM(本系列统指sun的HotSpot虚拟机1.7版本实现)加载类一共分为5步,分别是:1、加载 2、验证 3、准备 4、解析 5、初始化,简要的流程图如下 “加载”是“类加载”的第一个步骤,“类加载”的总指挥是ClassLoader,加载步骤大多都是异步的,各个阶段都有交叉进行甚至仅在需要时才进行(如晚解析),不像图中这样规矩。但按照JVM

2017-04-06 23:10:00 449

原创 JVM类加载3-准备

笔者博客地址:https://charpty.com在前两片文章中,我们讲到JVM已经把class文件加载为运行时数据结构并做了严格的校验,此时的instanceKlass需要进行进一步的数据上的处理才能交付使用,准备阶段就是其中相对简单的一步,这一步做的工作并不多,引用Oracle官方文档的话来说: Preparation involves creating the static field

2017-03-07 21:59:27 333

原创 JVM类加载2-验证

笔者博客地址:https://charpty.com“验证”是“连接”的步骤之一,在“类加载”第一步“加载”完成后,虚拟机并不一定立即开始对类信息进行“连接”,这取决于虚拟机的模式和当前状态。可能会在主方法执行时一次性完成所有类的连接,称为早连接,或者在类的符号引用首次被访问时才去执行连接,称为晚连接,我们先不关心何时进行类的“连接”操作,仅来关注“连接”的过程,“连接”的过程大致如下: “验证

2017-02-05 20:41:09 783 1

原创 HttpInvoker运作原理

Spring源码解析系列均基于Spring Framework 4.2.7把第三方系统的方法搬到本地HttpInvoker是常用的Java同构系统之间方法调用实现方案,是众多Spring项目中的一个子项目。顾名思义,它通过HTTP通信即可实现两个Java系统之间的远程方法调用,使得系统之间的通信如同调用本地方法一般。HttpInvoker和RMI同样使用JDK自带的序列化方式,但是HttpInvo

2017-01-26 13:42:49 10111

原创 Spring源码解析之Bean的加载

本文基于Spring4.2.7版本,由于Bean的处理是Spring的核心模块,所以版本之间也没有太大的差异从源码中看端倪相信大家多少有些基本的概念了,我们就从源码中来看看Spring是如何创建Bean的

2017-01-02 20:25:40 446

原创 Spring中的设计模式--工厂方法模式

关于工厂模式的误会这是个老生常谈的问题,很多新手或者不太在意设计模式的同事会对工厂模式有极深的误解,总会把“工厂模式”与“静态工厂方法”混为一谈,什么是静态工厂方法呢?可以看一个非常简单的例子:public class SimpleClientFactory { public static Client createClient(){ return new Client();

2017-01-02 19:40:20 18320 3

原创 使用gdb调试Nginx worker进程

使用gdb调试Nginx worker进程Tags: Nginx在开发Nginx模块或者遇到难以解决的Nginx配置问题时,不得不通过调试手段来找出问题所在,本文通过在Linux系统上使用gdb工具来演示如何调试运行中的Nginx进程,本文只关心Nginx的实际执行者–worker进程。 (1)编译Nginx首先你需要编译出带有调试信息的可执行文件和.o文件。 获得Nginx源码之后,通过我们熟

2016-01-10 22:05:16 8551

原创 Nginx优秀设计--ngx_tolower相关宏

Nginx优秀设计–ngx_tolower相关宏Tags: Nginx今天说一个简单的Nginx宏在Nginx中提供了一个将单个字符转换为小写的宏#define ngx_tolower(c) (u_char) ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c)逻辑比较简单,如果是属于大写字母,则通过位运算得到对应小写字母,如果不是则返回原字符,关键在于这个位

2016-01-01 01:25:33 760

原创 Nginx的数据结构--字符串

Nginx的数据结构–整型和字符串Tags: Nginx数据结构考虑到跨平台、高效率、统一规范,Nginx封装了许多的数据结构,大多数都是我们在其他开发项目中经常用到的一些,当然还有一些复杂的容器,笔者每篇文章会对其中一至两个点进行分析和练习讲解。整型封装typedef intptr_t ngx_int_t;typedef uintptr_t ngx_uint_t'字符串类型在Nginx中,使用N

2015-12-31 00:02:34 5579

原创 Ubuntu 平台下OpenResty的安装

Ubuntu 平台下OpenResty的安装源码包准备我们首先要在官网下载OpenResty的源码包。官网上会提供很多的版本,各个版本有什么不同也会有说明,我们可以按需选择下载。笔者选择下载的源码包为ngx_openresty-1.9.3.1.tar.gz。相关库的安装安装openresty需要的库apt-get install libreadline-dev libncurses5-dev lib

2015-12-16 23:32:04 22066

原创 检查gcc编译器是否C++ 11特性

C++ 11编译器检查Tags: 小工具简单的检查#if __cplusplus <= 199711L #error This library needs at least a C++11 compliant compiler#endif完整检查 通过boost环境变量进行检查

2015-12-09 22:25:13 17703

原创 teuthology安装部署(2)

teuthology install(2)ceph自动化测试环境teuthology的安装部署具体步骤再次强调,本文所述均建立在Ubuntu14.0LTS系统之上,这是一个非常普通的系统,也是ceph官方推荐使用的。 本文中所克隆的源,有ceph官方的地址,也有H3C的地址,大家都可以自己选择,并无好坏之分,只是个参考。 本文从简到难,逐层安装,没搞懂的就搜索下,一步步装,不要跳着查看,那样反而

2015-10-18 22:28:56 43434 11

原创 teuthology安装部署(1)

teuthology install(1)ceph自动化测试环境teuthology的安装部署概要一、teuthology概述teuthology是一款为了ceph而设计开发的自动化测试框架,主要使用的语言是Python,这是由于Python非常强大的多集群掌控能力,teuthology的主要功能是用来跑ceph开发的测试例,也就是ceph-qa-suite这个项目中写的那些测试配置,大多数为yam

2015-10-18 22:27:05 12606 2

原创 Redhat7教程(一)

安装Redhat7

2015-08-24 21:45:40 860

原创 我的架构师梦想日记

不知不觉又过了一个多月了,到了一个新公司,挺累的,每天晚上加班到9点,礼拜六肯定加班,礼拜天可能加班,但是心很亢奋。做的方向是云存储,每天都要学很多新的东西,当然一些之前的知识也能派上些用场,目前使用的技术相关的是开源的框架ceph,我们组负责的是块存储这一块。 这一个月以来主要就是拼命看书吧,工作就是熟悉ceph的整体架构和测试,当然期间也发现了几个ceph的bug,我自己改不了的我

2015-08-23 20:13:54 729 1

原创 我的架构师梦想日记

上午补了一下一个技术文章,还在写,只写到了第一章节,写个技术博客不容易,都是自己点点滴滴总结的东西吧。做相关工作的可以看下 http://blog.csdn.net/zstu_cc/article/details/46804161。最近不更新,等我先到新公司入职了再继续吧。今天被优衣库的刷屏了,我来分享点正能量吧今天看到一篇支付宝的关于支付宝安全性的介绍,深深感觉数据分析的

2015-07-15 21:12:52 828 3

原创 我的架构师梦想日记

这么久没来,好多事情都变了。先交代几个事情吧。1、我要从现在的公司离职了2、我不做Java了,准备去做C++开发3、我的角膜炎越来越严重了。 有没有感觉明显是一篇程序员写的博客,先把3个接口都申明好了,下面是各个接口的实现类: 1、离职不是因为薪资,我对自己的薪资很满意,离职不是因为太累,我明天都有很多时间学习自己想学的东西,离职不是

2015-07-14 21:27:27 650

原创 我的架构师梦想日记(重开)

中午休息之前听别人说在这种专业性很强的地方写这种,容易被人喷。现在想想也无所谓了。以后写的微博什么的,我都复制一份到这里来吧,只不过格式可能有点乱。技术文档我也会更新。以后就更这两个地方吧,CSDN和新浪(说的有人看似的,哈哈哈)。

2015-07-14 13:57:25 647

原创 HttpClient 源码解读

前面写了两篇HttpClient和HtmlUnit和文章,然后就很久没有更新了,真的是有事,现在闲下来,把N久没动的博客也更新一下吧。

2015-07-08 15:38:03 8843 1

HttpClient 源码解读

前面写了两篇HttpClient和HtmlUnit和文章,然后就很久没有更新了,真的是有事,现在闲下来,把N久没动的博客也更新一下吧,因为上次的HttpClient方面讲的比较少嘛,这篇文章也正好补一下。写博客之前也看了下网上其他人写的文章,也有很多解读HttpClient源码的,但是都是版本HttpClient4.1之前的,这里我先把我看到的一篇比较好的解读HttpClient源码的文章...

2015-07-08 15:38:00 346

原创 我的架构师梦想日记

今天把RHCE的班报了,好贵的,6800。差点没吃饭的钱了,幸好之前办了张信用卡。回公司之后吴总说我报这种课程用处不大,开发的用不太到的,其实我也知道用不太到,只是我觉得linux相当于是程序员基础一班,精通是没有必要的,但是大概的了解,会基本的服务器配置还是有必要的,这样有利于了解服务器架构吧。今天去还是去拱墅税务分局了,把礼拜天写的功能测试了一下,给了我3个xls让我导导看,结果也是非

2014-12-22 23:19:29 776

原创 我的架构师梦想日记

第四天今天想了想还是把RHCE的班报了吧,本来想等OCP考完之后再报的,但是某某培训机构比较坑,非得过了年才能考,好吧。问吴总能不能公司出钱帮我出点钱让我考这个证,吴总说公司从来没有过这个先例,这我在我的预料之中,考OCP的钱都是我自己出的,但是还是有一点点小小的失望。今天去拱墅了,又是一通加班,就是做那种普通的模块,实现的功能就是能够自动的往内网不停的写数据,就跟按键精灵似的点啊点,很顺

2014-12-21 22:22:19 646

原创 Spring3中Bean的加载解析

第三天今天的事比较的郁闷,做一个优化查询的事,就是根据一堆ID去查对应的一堆数据,我先把这一堆ID写到临时表里面,然后再根据临时表从正式表里面把数据查出来,按理说是没太多曲折的一件事情,但是在我测试的时候一直查不出数据,检查了半天,原来是数据库里面真的没有这些ID的数据,当时我就郁闷了。   今天没怎么学东西,下午终于把屋里的空调弄好了,师傅说是外面的风扇的线接触不良,加了点F,总共花了2

2014-12-21 00:20:02 729

原创 我的架构师梦想日记

第二天总感觉这么写个第几天第几天的是不是不太好。      这么晚了吧,写点啥呢,今天早上去上班的时候感觉心情很愉快,难得的很开心。首先来总结一下今天的工作吧,先把自己做的框架里的测试类全部整理了一遍,因为原来一直都很赶时间,测试类写是写了的,都不怎么算是测试类吧,就是些Main方法,今天把我自己模块下的测试类分了十来个包,这是遵循很多大牛说的,想写好代码,首先写好测试类。然后下载了act

2014-12-19 21:02:14 825

原创 我的架构师梦想日记

序不知道怎么开头,日记是每天都会写的,但是在博客里写日记真是头一次。今天对我来说是个不幸的日子,继我的两个叔叔得了癌症之后,我舅妈也住进了医院,我吓到了,我好担心他们,我也好害怕自己某一天突然就没了,所以我要把自己的每一天都记录下来,或许有点像流水账吧,当然这些日志应该有个主题,我想到了自己从大三以来一直的梦想,题目有点大,工作一年多了,每次我跟别人说我要成为架构师,大多数都会一笑置之,当然他

2014-12-18 22:10:42 988

原创 HttpClient和HtmlUnit的比较总结以及使用技巧(二)

转载请注明出处终于过去

2014-10-02 19:52:52 2516

原创 HttpClient和HtmlUnit的比较总结以及使用技巧(一)

大家在做爬虫、网页采集、通过网页自动写入数据时基本上都接触过这两个组件(权且称之为组件吧),网上入门资料已经很多了,我想从实际的应用角度谈谈我对于这两个组件的看法,并记录在博客中,以便日后翻阅,欢迎大家批评指正。 本文主要比较两者的优劣性以及介绍应用中的使用技巧,推荐一些入门资料以及非常实用的辅助工具,希望能对大家有所帮助。 大家有任何疑问...

2014-09-15 14:56:22 194

原创 HttpClient和HtmlUnit的比较总结以及使用技巧(一)

今年5月接触的这两个框架

2014-09-13 12:39:34 47993 5

HttpClient和HtmlUnit的比较总结以及使用技巧(一)

大家在做爬虫、网页采集、通过网页自动写入数据时基本上都接触过这两个组件(权且称之为组件吧),网上入门资料已经很多了,我想从实际的应用角度谈谈我对于这两个组件的看法,并记录在博客中,以便日后翻阅,欢迎大家批评指正。 本文主要比较两者的优劣性以及介绍应用中的使用技巧,推荐一些入门资料以及非常实用的辅助工具,希望能对大家有所帮助。大家有任何疑问或者建议希望留言给我,一起交流学习。下面我们首先...

2014-09-13 12:39:00 454

空空如也

空空如也

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

TA关注的人

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