在上次的zipmap分析完之后,其实关于redis源代码结构体部分的内容其实已经全部结束了,因为下面还有几个和结构体相关的操作类,就页把他们归并到struct包下了。这类的文件有:t_hash.c,z_list,z_set.c,t_string.c,t_zset.c,这些文件的功能其实都差不多,就是用来实现Client和Server之间的命令处理的操作类,通过robj的形式,把dict,zipli...
分类:
其他好文 时间:
2014-10-13 11:56:29
阅读次数:
215
ziplist和之前我解析过的adlist列表名字看上去的很像,但是作用却完全不同。之前的adlist主要针对的是普通的数据链表操作。而今天的ziplist指的是压缩链表,为什么叫压缩链表呢,因为链表中我们一般常用pre,next来指明当前的结点的前一个指针或当前的结点的下一个指针,这其实是在一定程度上占据了比较多的内存空间,ziplist采用了长度的表示方法,整个ziplist其实是超级长的字符...
分类:
其他好文 时间:
2014-10-11 19:10:25
阅读次数:
130
Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
分类:
数据库 时间:
2014-10-11 18:45:25
阅读次数:
298
1.介绍 转载:http://blog.csdn.net/qiujialongjjj/article/details/16945569 Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。Redis的出现,很大程序上补偿了memcach...
分类:
其他好文 时间:
2014-10-11 16:49:46
阅读次数:
256
sparkline这个单词,我第一次看的时候,也不知道这什么意思啊,以前根本没听过啊,但是这真真实实的出现在了redis的代码中了,刚刚开始以为这也是属于普通的队列嘛,就把他分在了struct包里了。好来分析完了,与原本我所想的差太大了。sparkline英文中的意思“微线图”,这么说吧,类似于折线图,由一个一个信息点构成。所以看到这个意思,你或许就明白了sparkline.c是干什么用的了吧,就...
分类:
其他好文 时间:
2014-10-10 20:04:44
阅读次数:
316
今天分析的是Redis源码中的字符串操作类的代码实现。有了上几次的分析经验,渐渐觉得我得换一种分析的方法,如果每个API都进行代码分析,有些功能性的重复,导致分析效率的偏低。所以下面我觉得对于代码的分析偏重的是一种功能整体的思维实现来讲解,其中我也会挑出一个比较有特点的方法进行拆分了解,这也可以让我们见识一下里面的一些神奇的代码。好,回归正题,说到字符串,这不管放到哪个编程语言中,都是使用频率极高...
分类:
其他好文 时间:
2014-10-09 16:44:38
阅读次数:
222
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP,Java客户端,使用很...
分类:
系统相关 时间:
2014-09-29 19:10:11
阅读次数:
262
把Mysql结果集缓存到Redis的字符串或哈希结构中以后,我们面临一个新的问题,即如何为这些字符串或哈希命名,也就是如何确定它们的键。因为这些数据结构所对应的行都属于某个结果集,假如可以找到一种唯一标识结果集的方法,那么只需为这些数据结构分配一个唯一的序号,然后把结果集标识符与该序号结合起来,就能唯一标识一个数据结构了。于是,为字符串和哈希命名的问题就转化为确定结果集标识符的问题。
...
分类:
数据库 时间:
2014-09-24 21:10:08
阅读次数:
193
在前面几篇文章中介绍了redis基本数据类型以及基本使用方法,本文将介绍一些管理数据库的命令。1、如何选择数据库//redis中包含0-15号数字表示的数据库,默认选择0号数据库;
语法:select[数据库数字]//数据库数字:0-15
//如果选择成功返回OK,否则提示你的数据库索引数字无..
分类:
其他好文 时间:
2014-09-09 13:36:39
阅读次数:
184