自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程的本质是数学问题

学源码是最快的学习方法

  • 博客(12)
  • 收藏
  • 关注

原创 Redis运行流程源码解析

原文作者:@凡趣科技pesiwang原文地址:http://blog.nosqlfan.com/html/4007.html本文分析源码基于Redis 2.4.7 stable 版本。 概述Redis通过定义一个 struct redisServer 类型的全局变量server 来保存服务器的相关信息(比如:配置信息,统计信息,服务器状态等等)。启动时通过读取配置文件里

2013-08-29 16:00:58 1142

原创 redis源码分析--zslRandomLevel位运算解析

与&0376的二进制就是1111 1110,二进制的与运算规则是,只有两个数同时为1时,则结果才为1,只要有一个数为0,则结果就为0。比如1&1=1; 1&0=0; 0&1=0; 0&0=0;因此把一个字符与二进制1111 1110进行与运算的结果就是把最后位设为0,而其他位不变。作个比喻假设a的二进制表示为1010 0111我们先不管这个数表示的是什么,我们来把这个数与1111 1110

2013-08-22 19:19:26 3610 3

原创 Redis源码分析--lookupKey函数查看value值

lookupKey函数查看value值robj *lookupKey(redisDb *db, robj *key) { dictEntry *de = dictFind(db->dict,key->ptr); if (de) { robj *val = dictGetVal(de); /* Update the access time for

2013-08-21 09:03:35 1503

原创 GDB 格式化结构体输出

GDB 命令行参数启动 GDB:l  gdb executablel  gdb -e executable -c core-filel  gdb executable -pid process-id (使用命令 'ps -auxw' 可以查看进程的 pid)选项 含义 –help-h 列出命令行参数。 –exec=file-e file

2013-08-15 22:53:46 23522 2

原创 cgdb安装与使用

官网:http://cgdb.github.io/安装# wget  http://cgdb.me/files/cgdb-0.6.7.tar.gz# tar -zvxf  cgdb-0.6.7.tar.gz# cd  cgdb-0.6.7# ./configure --prefix=/usr/local# make && make install 使用1:cgd

2013-08-15 17:11:54 7808

原创 Nginx源码分析--基本数据类型的别名

typedef intptr_t        ngx_int_t;typedef uintptr_t       ngx_uint_t;typedef intptr_t        ngx_flag_t;intptr_t在# /usr/include/stdint.h中,下面是stdint.h部分代码#ifndef _STDINT_H#define _STDINT_H

2013-08-12 15:51:00 981

原创 Nginx源码分析--字符串处理

ngx_string.cvoid ngx_strlow(u_char *dst, u_char *src, size_t n); 将src的前n个字符转换成小写存放在dst字符串当中,调用者需要保证dst指向的空间大于等于n。操作不会对原字符串产生变动。如要更改原字符串,可以:ngx_str_t str = ngx_string("hello world"); ngx_strlow(s

2013-08-11 16:56:26 2063

原创 函数指针--Nginx和Redis中两种回调函数写法

Nginx和Redis中两种回调函数写法#include //仿Nginx的写法//定义函数指针类型typedef void (*ngx_connection_handler_pt)(int c);//redis风格typedef void redisCommandProc(int c);typedef struct{int a;//第一步:定义void (*pshow)

2013-08-11 16:41:44 1997

原创 FastDFS安装与使用

安装注意要修改:/etc/fdfs/client.confvim /etc/fdfs/client.confbase_path=/home/yuqing/fastdfs 修改为: base_path=/home/fastdfstracker_server=192.168.209.121:22122 修改为: tracker_server=10.201.20.237:22122##i

2013-08-08 18:54:34 2340

原创 linux环境insight安装与使用

# wget ftp://sourceware.org/pub/insight/releases/insight-6.8-1a.tar.bz2# tar xvf insight-6.8-1a.tar.bz2# cd ./# ./configure --prefix=/usr/local/insight# make注意第一次make会报错:eval.c: 在函数‘eval

2013-08-06 12:29:40 2320

原创 指针的本质--u_char*指针在Nginx源码中的应用及原因

首先,在C语言中,实际上字符型数据在内存中是以二进制形式存放的,并不是真正的把一个字符存进内存里。在对字符型数据进行相加减运算的时候,系统会首先会将char型数据以隐形的方式转化成int型数据再进行相加减运算的。因此,由字符型数据在内存的存储方式来看,字符型数据是可以进行数值运算的,对字符型数据做数字运算实际上就是对字符本身对应的ASSIC码进行相应的数值运算。 然后 “ 整型”和“字符型

2013-08-05 14:13:01 3870 1

原创 Nginx模块开发

最简单的Nginx模块开发,虽然简单,但是是最重要的第一步。主要是看:http://blog.codinglabs.org/articles/intro-of-nginx-module-development.html 1.准备模块文件在nginx-1.4.2安装目录新建一个自己的模块的目录# mkdir myModule再新建ngx_http_echo目录#mkdir

2013-08-01 16:03:54 1202

空空如也

空空如也

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

TA关注的人

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