自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《Redis源码学习笔记》RDB

[url=http://diaocow.iteye.com/blog/1938032]《Redis源码学习笔记》文章列表[/url][color=red]由于图片较大,缩放较为模糊,请双击打开查看原图 ^_^[/color]在[url=http://diaocow.iteye.com/blog/1935050]主从复制[/url]过程中,我们提到过RDB文件,作为Redis持久化方...

2013-09-25 11:27:13 211

原创 《Redis源码学习笔记》AOF

[url=http://diaocow.iteye.com/blog/1938032]《Redis源码学习笔记》文章列表[/url][color=red]由于图片较大,缩放较为模糊,请双击打开查看原图 ^_^[/color]Redis提供两种持久化方式,RDB和AOF;与RDB不同,AOF可以完整的记录整个数据库,而不像RDB只是数据库某一时刻的快照;[b]那么AOF模式为...

2013-09-23 16:34:38 216

原创 《Redis源码学习笔记》键过期

[url=http://diaocow.iteye.com/blog/1938032]《Redis源码学习笔记》文章列表[/url]Redis可以为数据库中的每一个键关联一个过期时间,当到达指定时间后Redis就会把该键从数据库中删除,eg:[code="shell"]redis 127.0.0.1:6379> setex name 5 diaocow # 为键name设置5秒...

2013-09-09 07:35:15 180

原创 《Redis源码学习笔记》主从复制

[url=http://diaocow.iteye.com/blog/1938032]《Redis源码学习笔记》文章列表[/url][color=red]由于图片较大,缩放较为模糊,请双击打开查看原图 ^_^[/color]主从复制简单来说就是把一台redis数据库中的数据同步到另一台redis数据库,并且按照数据流向,数据的发送者我们称作master,数据的接受者我们称作slav...

2013-09-09 07:34:49 485

原创 《Redis源码学习笔记》事务

[url=http://diaocow.iteye.com/blog/1938032]《Redis源码学习笔记》文章列表[/url]Redis中的事务,提供了一种“[b]将多个命令打包并且一次执行[/b]”的方式;当用户输入MULTI命令时,就打开了客户端REDIS_MULTI选项,客户端从“非事务状态”切换到“事务状态”[img]http://dl2.iteye.com...

2013-09-08 16:01:53 106

原创 《Redis源码学习笔记》发布/订阅

[url=http://diaocow.iteye.com/blog/1938032]《Redis源码学习笔记》文章列表[/url]Redis的SUBSCRIBE命令,可以让客户端订阅任意数量的频道,每当有新消息发送到某个频道时,Redis就会把这消息发送给所有订阅该频道的客户端;如下图:客户端Client_1,Client_2,Client_3都订阅了频道channel,当有消息PUB...

2013-09-08 16:01:49 126

原创 《Redis源码学习笔记》事件库

[url=http://diaocow.iteye.com/blog/1938032]《Redis源码学习笔记》文章列表[/url]Redis没有使用第三方事件库来处理socket(譬如Libevent),而是自己实现了一个非常精巧的事件库(加上注释不到600行代码),这使得我们可以更加专注于Redis本身代码的阅读,而不必陷于三方库的学习和使用(我自己就是因为该原因选择学习Redis而不...

2013-09-08 16:01:47 108

原创 《Redis源码学习笔记》数据结构-字典

[url=http://diaocow.iteye.com/blog/1938032]《Redis源码学习笔记》文章列表[/url][color=red]由于图片较大,缩放较为模糊,请双击打开查看原图 ^_^ [/color]要看懂redis代码,其中重要的一步就是要看懂它里面所使用的数据结构,而在这不算少的数据结构中,最重要的就是字典,它几乎就是redis实现各种功能的骨架,所...

2013-09-08 16:01:44 86

原创 《Redis源码学习笔记》文章列表

1. [url=http://diaocow.iteye.com/blog/1935091]《Redis源码学习笔记》数据结构-字典[/url]2. [url=http://diaocow.iteye.com/blog/1935093]《Redis源码学习笔记》事件库[/url]3. [url=http://diaocow.iteye.com/blog/1935092]《Redis源码学习...

2013-09-08 16:01:41 143

原创 【Python】Webpy 源码学习(一)

自己是个python新手,之前买了本,但看了一半实在看不下去了(内容过于啰嗦,而且在关键点的地方又浅尝辄止),所以希望通过阅读一些简单的开源项目来快速提高python水平,最终让我发现了webpy这个好东西!那么webpy是什么呢? 阅读它的源码我们又能学到什么呢?简单说webpy就是一个开源的web应用框架(官方首页:[url]http://webpy.org/[/url])...

2013-08-09 21:25:19 192

原创 【读书笔记】《Unix环境高级编程》第四章 Files and Directories

看完了该章,觉得最重要的是需要了解以下几个方面:[b]a.stat结构b.进程权限及作用c.文件相关属性(访问权限,文件时间等等)d.unix文件系统(inode和block关系)[/b]现在我就以流水账^_^的形式对上述几个方面做个总结:[color=red]-----------------------------------------------------...

2013-02-25 16:21:09 126

原创 【读书笔记】 《Unix环境高级编程》第三章 File I/O

对于unix系统而言,一切皆“文件”,所以我们就可以使用一套基本的IO函数,来对所有的“文件”进行读写操作!现在我们来看下文件操作的几个底层IO1.open函数用来打开或创建一个文件,其函数原型如下:[code="c"]int open(const char *pathname, int oflag, ... /* mode_t mode */);[/code]第一个参数pathn...

2013-02-25 16:16:31 123

Erlang rebar源码学习(二)

之前说了rebar编译的核心部分(rebar_base_compile:run/4方法),现在我们就完整的看下Erlang编译流程([b]不准备细致的分析每一行代码,只罗列其中较为重要的部分[/b])编译的入口方法是: [b] rebar_erlc_compiler:compile/2[/b][img]http://dl.iteye.com/upload/attachment/00...

2013-01-28 11:27:52 158

Erlang rebar源码学习(一)

最近看霸爷的微博([url]http://weibo.com/tchuba[/url])提到,rebar([url]https://github.com/basho/rebar[/url])是学习Erlang很好的材料,因此作为Erlang新手,自己也把源码下载下来看了下,确实发现代码写的非常优雅工整,里面的每个方法(函数)写的都很短小干练,的确可以作为写Erlang代码的范例!那么reb...

2013-01-27 17:34:49 278

原创 Eralng ets学习总结

[b]ets是什么?[/b]ets是Erlang Term Storage的缩写,它是一个基于内存的KV Table,支持大数据量存储以及高效查询.[b]ets有4种类型的table:[/b][table]|set|table中的每一个Value(Tuple)都是唯一,并且一个Key只能对应一个Value||ordered_set|同set,唯一不同的是table中的Key...

2013-01-13 13:57:55 220

原创 Erlang 文件处理(读书笔记)

今天看了下erlang file章节,内容感觉比较散,现在做个笔记:文件操作主要有4个module[b]file [/b]: 这个模块主要提供对文件基本操作的方法(譬如,打开关闭文件,读写文件内容等等)[b]filename[/b] : 这个模块提供跨平台处理文件名的方法(即,你不用关心你的代码是运行在linux平台还是windows平台)[b]filelib[/b] : 这个...

2013-01-08 12:57:45 311 1

Erlang OTP学习(3):supervisor

今天细致的看了下supervisor,现在做个总结:[img]http://dl.iteye.com/upload/attachment/0078/8720/92ac0d22-334c-3303-a5e9-b2c5a1e1f0d6.png[/img]其中,方块代表supervisor process,它的功能很简单,就负责看管它下面的“小弟”(child processes) 并且在必要的...

2013-01-05 21:11:38 144

Erlang 并发错误处理

[b]这一章有三个关键的概念:link,exit signal, system process,现在就对这些做个总结:[/b]通常一个process是由另一个process创建,若我们不做任何处理,那么新创建的process(我们称:子process)和创建它的process(我们称:父process),在创建完成后将没有任何关系,任何瓜葛,生老病死都不会被对方感知,但是若我们有这样这一种...

2013-01-04 19:51:30 141

原创 Erlang receive代码块

receive代码块是如何执行的呢?[img]http://dl.iteye.com/upload/attachment/0078/6477/52549fae-2faa-3569-be9e-31a3a34a1aef.jpg[/img]process会尝试从它的mail-box中循环取出消息进行pattern match:1.若某一条消息pattern match成功,该条消...

2012-12-31 11:28:59 355

Erlang OTP学习(2):gen_event

说完了gen_server,今天我们来看看gen_event。通常我们会有这么一种需求场景:采集客户端发送的事件,并做相应的处理,如下图:[img]http://dl.iteye.com/upload/attachment/0078/6320/5a1a22d9-4ff5-34fd-83f7-039002e424f0.png[/img]EventServer负责接收客户端发送的事件消...

2012-12-30 17:26:14 159

原创 Erlang OTP学习(1):gen_server

在《Programming Erlang》的OTP introduction章节中,作者通过循序渐进的方式,向我们展示了gen_server设计思路,现在做下总结:在具体看gen_server之前,我们先看一个server通用框架:[img]http://dl.iteye.com/upload/attachment/0078/5520/a0947ace-5d71-35bd-a04f-e...

2012-12-28 19:20:57 137

原创 Erlang 单元测试

今天学习了下Erlang单元测试,发现非常有用,现在做个总结:我们先看一个例子(吐槽下Iteye的erlang代码高亮):[img]http://dl.iteye.com/upload/attachment/0078/3516/1320aa76-4c87-3277-a8b2-00885978ed7d.jpg[/img]这个module负责计算1到N的和,现在我们如何确认这个mo...

2012-12-24 23:29:31 191

Find命令实战

话说linux中我最常用的几个命令就是awk, grep, vim, find,今天我们就来详细看下find命令的使用先来一个简单例子:[code="shell"]find . -name "*.java" # 递归查找当前目录下所有java文件[/code]其中:[b]. [/b]表示查找路径为当前目录(你也可以指定为其他工程目录,譬如:~/workspace/login)...

2012-12-17 21:33:36 188

BufferedInputStream实现原理分析

BufferedInputStream是一个带有缓冲区的输入流,通常使用它可以提高我们的读取效率,现在我们看下BufferedInputStream的实现原理:BufferedInputStream内部有一个缓冲区,默认大小为8M,每次调用read方法的时候,它首先尝试从缓冲区里读取数据,若读取失败(缓冲区无可读数据),则选择从物理数据源(譬如文件)读取新数据(这里会尝试尽可能读取多的字节)放...

2012-12-11 23:00:30 121

原创 Vim 复制 删除 替换

文本编辑过程中,我们常常需要对一段文本进行编辑(删除,复制或者替换),我们通常是使用鼠标拖动选中需要操作的文本,然后再进行编辑。在使用vim前,你可能还不觉得这种方式有什么不好,但是当你懂得用vim来处理这些需求时,你会发现以前真是弱爆了![b]1.vim替换[/b]vim替换指令和sed命令基本相同(多了一些特殊字符)[table]|:s/abc/def/g ...

2012-12-10 20:57:02 210

原创 Vim大小写转换

在文本编辑过程中,我们尝尝需要把文件中某些内容进行大写切换,若是普通的文本编辑器,似乎很只能部分满足或者就压根不能满足我们的需求,这时候就轮到vim上场了...[b]vim 大小写转换命令是:[/b]gu 和 gU (u小写,U大写)[b]1.选择方式:[/b]按下v或 ctrl+v 切换到[color=blue][u]选择模式[/u][/color],然后选择你要转换的字...

2012-12-09 22:47:55 747

Vim漂移

不知道从什么时候开始,渐渐放弃了gedit,nodepad,而选择使用vim来编辑文件,不敢说自己vim有多熟练,但是确实被vim散发出的魅力所吸引.现在记录自己Vim学习的点点滴滴并且不断的更新,总结,期望有一天,能够练成vim大法!vim看上去土不拉几的,几乎没有什么界面可言,但是当我了解它的“漂移”后,我深深感受它的威力所在(光这一点就是普通文本编辑器无可比拟的).首先什么是...

2012-12-09 22:37:36 96

原创 Https流程(简单认识)

最经看了一些关于https的东西,比较乱,现在做个总结(不一定正确,而且很多细节没挖掘,只是目前的一个粗浅认识)[b]Https流程图[/b][img]http://dl.iteye.com/upload/attachment/0077/5277/d31b3d02-eb0c-3788-b824-bb6840252272.jpg[/img][b]从这个图我们可以看出:[/b]...

2012-12-06 19:43:32 175

TinyMQ学习(2) 源码

上一节([url]http://diaocow.iteye.com/blog/1734253[/url])我们对TinyMQ进行了概述,这一节我们将着重看一下作者是如何实现消息的发布/订阅[size=small][b]在看源代码之前我们需要了解一些module以及函数的作用:[/b][/size][code="text"]dict:new()创建一个 Key-Value D...

2012-11-24 14:38:07 134

原创 TinyMQ学习(1) 概述

最近在学习erlang,了解了下它的基本语法以及相关特性,但是一直没有比较大的进展.前天在微博上无意中发现一个用erlang写的迷你的消息队列TinyMQ(源代码文件不足50K),这激发了我极大的兴趣,抱着学习的态度,下载了作者的源代码([url]https://github.com/evanmiller/tinymq[/url])进行了研究学习,收获还是蛮大的,至少了解到:1.如何用erla...

2012-11-24 00:27:10 309

这周写脚本过程中的一点收获

这周写了两个脚本,不算太难,但是每一个都让我有所感悟.....第一个脚本是这样的:分析一个12G大小的 apache cookie_log,从中删选出指定数据然后分析统计我的原先做法是: sed 's/.../../' | awk '{...}' ,即先用sed命令对数据进行替换,增加修改成我希望的样子,然后再用awk分析统计这样看貌似没什么问题,但是如果原始数据很大(比如...

2012-11-15 22:29:07 371

Stomp协议学习与实战

最近工作中使用到Stomp协议,现在做个总结!Stomp是一个简单的消息文本协议,它的设计核心理念就是简单与可用性,官方文档:[url]http://stomp.github.com/stomp-specification-1.1.html[/url]现在我们就来实践一下Stomp协议,你需要的是:1.一个支持stomp消息协议的messaging server(譬如act...

2012-11-13 23:18:00 861

原创 初窥Java线程池

[b]如何创建一个线程(两种方式)[/b]方式一:继承Thread类,覆写run方法[code="java"]public class Test { public static void main(String[] args) { Thread thread = new ThreadDemo(); thread.start();...

2012-09-27 14:34:11 74

原创 Linux文件的分割和合并

今天逛博客看到一篇不错的文章:[url]http://syzxlyx-cu.iteye.com/blog/1683822[/url]自己也man了一下命令详细,现总结如:[size=medium][b]split文件分割[/b][/size][code="shell"]$ ls -lh testfile -rw-r--r-- 1 80 admin 2.8M Sep 23...

2012-09-23 23:20:52 503

awk学习资料分享

之所以开始学习shell编程,学习linux命令都是从awk开始,它给予了太多美好的感觉以及回忆(虽然目前还只是一个入门级别的选手);awk看似一个命令(听起来很酷,像AK47一样),但他其实就是一门编程语言(和C风格很像),下面我就列举一下,我学习过程中比较好的资料:[b]1.(附件可下载)[/b]这本书真的很不错,看它的时候仿佛又回到了大学时代看是的那种激动,虽然我只看...

2012-09-22 13:54:50 130

弱智的单词查询脚本

每次查询单词,都需要打开一个网页,然后粘帖需要查询的单词,很是麻烦,所以就写了一个脚本执行这些简单,繁琐的工作!直接上代码:[code="bash"]#!/bin/bash############################## 单词查询脚本# # 用法: word.sh apple# # 2012-09-19 diaocow######...

2012-09-19 22:19:31 129

原创 Sed命令学习资料分享

我只想说一句,当你对sed命令越熟悉时,会越发的觉得sed命令的强大。本来是想自己做下总结的,但是觉得自己写的总结远没有这些资料好,还需要在沉淀一些;下面就列一下我学习sed命令看到的比较好的资料(请用BIG5编码打开看)[url]http://phi.sinica.edu.tw/tyuan/old.pages/pcfarm.19991228/aspac/aspac...

2012-09-19 16:44:37 272

原创 切换hosts的shell脚本

在web开发中,我们经常需要切换hosts绑定,比较好用工具火狐插件:hostAdmin. 今天突发奇想(最近看了很多shell,也想锻炼一下),仿照hostAdmin写了一个shell脚本,目前运行良好。[code="ruby"]#!/bin/bash############################### 切换hosts的工具类 swich hosts#...

2012-09-08 20:21:09 539

原创 Shell脚本基本流程控制语句总结

通常我们将一些命令写在一个文件中就算是一个shell脚本了,但是如果需要执行更复杂的逻辑判断,我们就需要流程控制语句来支持。现在我就总结一下shell流程控制语句语法以及常用形式(我一直觉得没有必要什么都学,而是用自己擅长的方式去解决所有遇到的问题)[size=medium][b]1.if条件[/b][/size][code="ruby"]if 条件; then #statemen...

2012-09-02 12:54:45 216

Bash内建字符串操作

linux有很多命令可以对字符串进行操作,譬如awk,sed,但是在shell脚本如果能使用bash内建的操作符完成操作就尽量不要使用外部命令,因为外部命令通常都需要fork出一个单独的进程来执行,这会降低脚本执行效率;[size=medium][b]1.获取字符串长度[/b][/size][table]|[b]bash语法:[/b]${#字符串}|[/table][cod...

2012-09-01 19:42:52 110

空空如也

空空如也

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

TA关注的人

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