- 博客(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关注的人