记录学习过程中的点点滴滴
redis的搜索结果
redis中常用数据结构介绍
四 13th
1. 常用数据结构
dict
在redis中最基本的三个数据结构是dict 、adlist和sds,其中dict是redis中最重要的数据结构了,其key-value的映射关系就是通过dict来实现的,dict的内部实现是hash table,这个哈希表的大小是动态增加或减少的,主要是依据哈希表中的元素个数;同时哈希表适用链接法来解决哈希冲突的,具体实现在dict.h和dict.c文件中;
adlist
adlist(a generic doubly linked list)双向链表,这个数据结构在redis中用的也比较多,包括像当前保存的客户端连接或者是value对应是list的实现等,都是用的adlist,这个应该来说比较简单,具体实现在adlist.h和adlist.c;
sds
还有一个比较基本的数据结构就是sds(dynamic string),对字符串处理的简单封装,具体细节实现在sds.h和sds.c中,有一篇文章是介绍sds的实现的,点击这里
更多 >

redis中sorted set的实现原理
四 12th
从redis 1.1版本,redis开始支持sorted set(有序集合),今天在看redis源码时,具体看了它的实现;
关于ZSET的具体用法:http://redis.io/commands#sorted_set
ZSET的实现用到了两个数据结构:hash table 和 skip list(跳跃表),其中hash table是具体使用redis中的dict来实现的,主要是为了保证查询效率为O(1) ,而skip list(跳跃表)主要是保证元素有序并能够保证INSERT和REMOVE操作是O(logn)的复杂度。
关于skip list这里简单介绍下:skip list是链表的一种特殊形式,对链表的一种优化;保证INSERT和REMOVE操作是O(logn)的负载读,而通用链表的复杂度为O(n);
关于skip list的详细介绍请参考下面这篇文章:
http://blog.csdn.net/caoeryingzi/archive/2010/11/18/6018070.aspx
sorted set的用途:
可以用作实时排名,例如微博用户的排名
还有TOPN问题等
http://wangyuanzju.blog.163.com/blog/static/1302920099311165490/
redis源码分析资料
四 8th
最近闲来无事,看看redis源码,看看redis为何如此高效~
下面是redis代码分析的资料,记录下:
比较全面但不太详细的分析:Redis: under the hood
简单的读和写的完整处理过程:More Redis internals: Tracing a GET & SET (同时也是一个挺好的GDB调试研究源码的实例教程)
关于虚拟内存:Virtual memory
其它资料:http://redis.io/documentation
那就先从redis最原始的1.0版本开始看吧,这里需要说明下,一般学习开源软件代码,最初的版本代码量比较少,看起来不是很费劲,而且基本上能够体现软件的架构信息。
有关本站redis的内容请点击这里
分享一片好文–NoSQL数据库笔谈
八 17th
http://www.yankay.com/wp-content/uploads/2010/02/NoSql%20Database%20Note/#_3648342117667198_092538481578
redis是什么
十一 26th
今天发现一个类似与memcache的key-value的开源软件,比较新,不过貌似用得已经比较广泛了
记录下,抽时间看下.
redis 是一个高性能的key-value数据库,redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,还有一个key-value数据库就是bdb(Berkeley DB).
google-code:http://code.google.com/p/redis/
安装方法:http://hi.baidu.com/thinkinginlamp/blog/item/3358c93d174e35ce9f3d62bf.html
近期评论