Twitter开源的通用性数据切分中间件Gizzard

十二月 6, 2011 by · 1 Comment 

Gizzard是Twitter在11年4月份新推出的一个通用数据切分中间件,在Twitter的架构中占用重要的作用。

从图中看到Gizzard主要用于在MYSQL之上,作用是实现数据切分。但目前据说 Gizzard最主要的作用在用于在memcache和redis上。众所周知,memcache和redis本身缺少(或者实现较弱)主从同步机制。在 这里Gizzard的作用就不仅仅是数据切分,还有备份多写、异常队列等多项功能。
Read more

原创文章,转载请注明: 文章地址Twitter开源的通用性数据切分中间件Gizzard

新浪微博开放平台Redis实战分享

十月 21, 2011 by · 6 Comments 

关联性文章:
新浪微博开放平台Redis实战分享
Redis运维之道

浅谈redis数据库的键值设计
redis源代码分析-hash table
redis源代码分析-replication

redis源代码分析–protocol
redis源代码分析–persistence
redis源代码分析–event library

原创文章,转载请注明: 文章地址新浪微博开放平台Redis实战分享

全球企业开发者技术大会主题信息

九月 29, 2011 by · Leave a Comment 

【导读】

QCon全球企业开发大会(QCon Enterprise Software Development Conference)是由InfoQ网站主办的全球顶级技术盛会,每年在伦敦、北京、东京、圣保罗、旧金山等城市召开,今年是第一次在中国杭州举办。自 2007年3月份在伦敦召开首次举办以来,已经有包括金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过 QCon大会。

n  会务信息

大会日程:2011年10月21日-10月23日(星期五、星期六、星期天,共计3天)

大会举办地点:中国.杭州 Read more

原创文章,转载请注明: 文章地址全球企业开发者技术大会主题信息

浅谈redis数据库的键值设计

九月 6, 2011 by · 5 Comments 

丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。

下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系型数据库做一个对比,发现关系型的不足之处。

用户登录系统

记录用户登录信息的一个系统, 我们简化业务后只留下一张表。 Read more

原创文章,转载请注明: 文章地址浅谈redis数据库的键值设计

redis源代码分析-hash table

九月 1, 2011 by · 1 Comment 

hashtable的实现有很多,redis的dict.c 是其中之一。

redis_dict Read more

原创文章,转载请注明: 文章地址redis源代码分析-hash table

redis源代码分析-replication

九月 1, 2011 by · Leave a Comment 

edis的复制方法和机制都比较简单。

slaveof masterip port

在slave端键入命令之后,就开启了从master到slave的复制。一个master可以有多个slave,master有变化的时候会主动 的把命令传播给每个slave。slave同时可以作为其他的slave的master,前提条件是这个slave已经处于稳定状态 (REDIS_REPL_CONNECTED)。slave在复制的开始阶段处于阻塞状态(sync_readline)无法对外提供服务。

数据的有向图会让redis的运维很有搞头。 Read more

原创文章,转载请注明: 文章地址redis源代码分析-replication

redis源代码分析–protocol

九月 1, 2011 by · 1 Comment 

我们跟踪一个普通的get命令来遍历几个关键函数,熟悉协议处理的过程。

你可以通过telnet或者redis_cli、利用lib库发送请求给redis server。前者的是一种裸协议的请求发送到服务端,而后两者会对键入的请求进行协议组装帮助更好的解析(常见的是长度放到前头,还有添加阿协议类型)。 Read more

原创文章,转载请注明: 文章地址redis源代码分析–protocol

redis源代码分析–persistence

九月 1, 2011 by · Leave a Comment 

redis有全量(save/bgsave)和增量(aof)的持久化命令。

全量的原理就是遍历里所有的DB,在每个bucket,读取链表的key和value并写入dump.rdb文件(rdb.c 405)。

save命令直接调度rdbSave函数,这会阻塞主线程的工作,通常我们使用bgsave。

bgsave命令调度rdbSaveBackground函数启动了一个子进程然后调度了rdbSave函数,子进程的退出状态由 serverCron的backgroundSaveDoneHandler来判断,这个在复制这篇文章里讲到过,这里就不罗嗦了。 Read more

原创文章,转载请注明: 文章地址redis源代码分析–persistence

redis源代码分析–event library

九月 1, 2011 by · 2 Comments 

每个cs程序尤其是高并发的网络服务端程序都有自己的网络异步事件处理库,redis不例外。

事件库仅仅包括ae.c、ae.h,还有3个不同的多路复用(本文仅描述epoll)的wrapper文件,事件库封装了框架调用的主循环函数,暴露了时间、文件事件注册和销毁函数,典型的依赖反转模式。
网络操作都在networking.c里,封装了常见的socket操作。

我们从redis启动的main函数开始,从用户发出连接键入命令开始遍历网络事件库所涉及的函数,unix套接口相关函数不表。

首先对几个最常用对象进行解释。 Read more

原创文章,转载请注明: 文章地址redis源代码分析–event library

Redis运维之道

六月 28, 2011 by · 4 Comments 

 

关联性文章:
新浪微博开放平台Redis实战分享
Redis运维之道

浅谈redis数据库的键值设计
redis源代码分析-hash table
redis源代码分析-replication

redis源代码分析–protocol
redis源代码分析–persistence
redis源代码分析–event library

 

原创文章,转载请注明: 文章地址Redis运维之道

Next Page »

知识共享许可协议
作品采用知识共享署名 2.5 中国大陆许可协议进行许可。