2012年9月18日

Redis源码解析3 - Object

摘要: Everything is Object(转载请注明出处:http://www.cnblogs.com/curve/archive/2012/09/18/2686900.html)数据结构在Redis中,用 robj 结构表示一切数据对象,可以把它看作一种元数据(MetaData)各种不同的结构化数据,通过该对象进行封装、传递、变换、编码,而该对象本身却十分简单其类型定义如下:1 typedef struct redisObject {2 unsigned type:4; // 数据类型3 unsigned storage:2; // 数据存储位置(VM管理中用到)4 ... 阅读全文

posted @ 2012-09-18 17:44 curve 阅读(1016) 评论(0) 推荐(0) 编辑

Redis源码解析4 - 数据类型之 String & List

摘要: STRING(转载请注明出处:http://www.cnblogs.com/curve/archive/2012/09/18/2689132.html)string类型的数据在Redis中有两种编码方式:1.RAW 这表示一个原始字符串对象,robj中的ptr指针指向一个sds类型的内存块 sds是一个带长度信息的内存块,用于存储二进制安全的字符串2. INT 这表示一个编码为整数的字符串对象,robj中的ptr指针被强行转化为一个long型变量以存储整数 数字类型的字符串,比如“123456”,都会被编码为整型 这样做的目的就一点,节省内存。就以字符串“123456”为例, (1... 阅读全文

posted @ 2012-09-18 17:44 curve 阅读(1276) 评论(1) 推荐(1) 编辑

Redis源码解析2 - Dict结构

摘要: DICT数据结构(转载请注明出处:http://www.cnblogs.com/curve/archive/2012/09/18/2685076.html)Dict其实就是一个hash表,但在Redis中,已经存在一种叫“Hash”的数据结构,所以,就把Hash表改名成Dict吧。。。 Dict是Redis进行键值处理的灵魂,不管多大的数据量,始终维持O(1)的时间复杂度(排除bucket下链表很长的情况) 全局保存的所有key,都存在于一个Dict中 而且别的数据结构,比如set、hash也可能会用到DictDict实现于 dict.h dict.c 两个文件中其类型定义如下图:... 阅读全文

posted @ 2012-09-18 17:43 curve 阅读(862) 评论(0) 推荐(0) 编辑

Redis源码解析1 - 程序框架

摘要: 前言(转载请注明出处:http://www.cnblogs.com/curve/archive/2012/09/18/2683226.html)Redis(REmoteDIctionaryServer)是一个由Salvatore Sanfilippo写的key-value存储系统。它有以下特点:性能极高– Redis能支持超过 100K+ 每秒的读写频率丰富的数据类型 – Redis支持二进制兼容的 string、list、set、zset、hash 等数据结构原子 – Redis的所有操作都是原子性的事务 - 支持多条指令合并成事务执行丰富的特性– Redis还支持 publish/subs 阅读全文

posted @ 2012-09-18 17:41 curve 阅读(1354) 评论(1) 推荐(0) 编辑

导航