05 2011 档案
摘要:redis的哈希字典和其他字典的功能一样,用于根据key值快速的查找对应的value(这不废话么。。。)。redis的哈希字典使用的是哈希的方法(依旧是废话)。redis的字典有一种独特的rehash的方法,这是本文介绍的重点。 首先,dict包含四个结构体。关系如图所示: 结构体dict表示一个字典。每个字典中含有两个哈希表,ht[0]和ht[1]。哈希表用结构体dictht表示。哈希表采用链表法来处理冲突。结构体dictht的成员变量size表示table的长度,通常是2的幂次。sizemask等于size减1,用于计算哈希值对应的桶。used表示table的所有桶中的dictEntry实
阅读全文
摘要:神马是redis?redis是一个开源的,牛B的键值数据库。由于键可以被保存为字符串,列表,哈希表,集合和有序集合,redis有时候也被称作数据结构服务器。这句蹩脚的翻译来自redis官网的介绍。想进一步了解的可以去它官网瞅瞅。目前redis已归入vmware门下。 下面,切入正题。redis是用c编写的。用c编写的程序都要面临一个很重要也很头疼的问题----内存管理。很多时候,不当的内存管理会成为万恶之源。。。redis的内存管理只有两个文件zmalloc.c和zmalloc.h。 zmalloc.h的内容如下: 1 void *zmalloc(size_t size); 2 void *z
阅读全文
摘要:Lighttpd所要处理的错误分为两种。一种是http协议规定的错误,如404错误。另一种就是服务器运行过程中的错误,如write错误。 对于http协议规定的错误,lighttpd返回相应的错误提示文件。其实对于lighttpd而言,这不算错误。在返回错误提示文件后,相当于顺利的完成了一次请求,只是结果和客户端想要的不一样而已。 对于服务器运行中的错误,状态机会直接进入CON_STATE_ERROR状态。大部分的情况下,这种错误都是由客户端提前断开连接所造成的。比如你不停的刷新页面,在你刷新的时候,前一次的连接没有完成,但被浏览器强行断开,这时,服务器就会出现连接错误。对于服务器而言,刷新.
阅读全文
摘要:yes:输出一串y,有时可以用来对付很多y/n选择的应用 。输出很多。。。banner:打印字符标题,就是用字符拼出大字来 ,最好把窗口最大化,否则可能显示不全。ddate:把日历转成什么其他历,Today is Sweetmorn, the 63rd day of Discord in the YOLD 3173fortune:输出一句话,内容有很多种,据说有唐诗宋词(有唐诗宋词的是fortune-zh,安装完之后,fortune会随机的输出唐诗宋词或英文名言。)cal 9 1752:打印日历,不过那一个月的有问题,原因如下:ppop 写道 "sniper在其BLOG中写道:今天偶
阅读全文