redis
逆风飞扬
思考着,奋斗着,冷眼观事,热心待人~
展开
-
Redis源码解析—源码目录介绍
概念 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样原创 2014-04-30 19:17:00 · 712 阅读 · 0 评论 -
redis源码分析-rehash过程详解
hash table是一种高效的数据结构,被广泛的用在key-value存储中,Redis的dict其实就是一个典型的hash table实现。rehash是在hash table的大小不能满足需求,造成过多hash碰撞后需要进行的扩容hash table的操作,其实通常的做法确实是建立一个额外的hash table,将原来的hash table中的数据在新的数据中进行重新输入,从而生成新原创 2014-11-27 15:31:09 · 3035 阅读 · 0 评论 -
Redis 数据结构之ziplist
Redis中压缩链表ziplist数据结构与API相关文件是:ziplist.h, ziplist.c, t_zset.c。一、ziplist的构成是一个4字节无符号整数,用来存储整个ziplist占用的字节数;是一个4字节无符号整数,用来存储ziplist最后一个节点的相对于ziplist首地址偏移量;是一个2字节无符号整数,存储zipli原创 2014-05-15 19:17:20 · 2330 阅读 · 0 评论 -
Redis 数据结构之 zipmap 内存布局分析
Redis被称为key/value应用中的瑞士军刀,除了其丰富的数据结构支持,更重要的是高效的内存使用,分析源码可以发现作者使用每一个 byte都精打细算。在hashtable实现中,Redis引入了zipmap数据结构,保证在hashtable刚创建以及元素较少时,用更少的内存 来存储,同时对查询的效率也不会受太大的影响。下面就以源码和例子结合的方式来分析一下zipmap的内存布局。先来原创 2014-05-15 18:56:37 · 1026 阅读 · 0 评论 -
redis数据结构之 intset
整数集合intset用于有序、无重复地保存多个整数值,根据集合中元素的值自动选择使用整数类型来保存元素,例如:如果intset中绝对值最大的整数可以用int32_t来保存,那么整个intset中所有元素都使用int32_t来保存。如果当前intset所使用的类型不能保存一个即将加入到该intset的新元素时候,需要对intset进行升级,比如新元素的类型是int64_t,而当前intset原创 2014-05-15 11:40:42 · 1012 阅读 · 0 评论 -
Redis源码简要分析
在文章的开头我们把所有服务端文件列出来,并且标示出其作用:adlist.c //双向链表ae.c //事件驱动ae_epoll.c //epoll接口, linux用ae_kqueue.c //kqueue接口, freebsd用ae_select.c //select接口, windows用anet.c //网络处理aof.c //处理AOF文件config.c原创 2014-04-30 19:10:58 · 692 阅读 · 0 评论 -
Redis安装部署
1 概要Redis服务器环境的安装。指导系统部署和维护使用,以64位Linux环境下安装使用2 缩略语和术语缩略语/术语全 称说 明append only file(aof)全持久化模式原创 2014-04-30 19:23:10 · 817 阅读 · 0 评论 -
redis设计思想
不同于nginx的精雕细琢,redis代码的风格趋向于简洁实用。简洁启事,下面所述不再列举任何源码,不拼凑任何外来资料。去除末枝,下面直入redis主题,尽可能简洁地描述redis的设计思想。 整体模型:单进程单线程事件驱动模式。Redis在主处理流程中,采用了单进程接受各种client请求并返回结果,整体处理流程采用事件驱动的方式进行。通过其IO复用的方式监听aeEven原创 2014-04-30 19:18:31 · 1038 阅读 · 0 评论 -
The architecture of REDIS
REDIS is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. Redis works with an in-memo原创 2014-04-30 19:17:50 · 1739 阅读 · 0 评论 -
redis 持久化机制AOF/RDB详解
Redis作为一个使用广泛的KV内存存储,其也支持一定的数据持久化,这里试着介绍一下Redis在源码层面对持久化的实现机制。总的来说,Redis支持的将其数据库里面的KV数据存储到磁盘,但可能会有短时间的丢失。官网关于持久化的介绍可以参考这里“Redis Persistence”,这篇文章介绍一下其在代码层面的实现。其支持2中不同的持久化机制:第一种RDB数据快照持久化。R原创 2014-11-27 15:43:21 · 1868 阅读 · 0 评论