Redis
yfk
这个作者很懒,什么都没留下…
展开
-
Redis源码分析:内存管理
源码版本:redis 2.4.4redis内存相关函数都放在zmalloc.h zmalloc.c中redis中可以使用tcmalloc、jemallocMakefile:ifeq ($(USE_TCMALLOC),yes) ALLOC_DEP= ALLOC_LINK=-ltcmalloc ALLOC_FLAGS=-DUSE_TCMALLOCendifif原创 2012-01-06 14:03:42 · 4140 阅读 · 0 评论 -
Redis集群方案及实现
之前做了一个Redis的集群方案,跑了小半年,线上运行的很稳定,还没出过大的状况差不多可以跟大家分享下经验,之前写了一篇文章 数据在线服务的一些探索经验,简单介绍了Reids在我们这边的应用应用我们的Redis集群主要承担了以下服务:1. 实时推荐2. 用户画像3. 诚信分值服务集群状况集群峰值QPS 1W左右,RW响应时间999线在1S左右整个集群:1. Redis节点: 8台物理机;每台128原创 2014-08-30 17:20:08 · 92904 阅读 · 14 评论 -
Redis 存储结构设计
Redis是一个包含了很多Key-Value对的大字典,这个字典支持的Value非常丰富,可以为字符串、哈希表、列表、集合和有序集,基于这些类型丰富的value,扩展出了功能强大的操作,例如hmset、lpush、sadd等原创 2014-05-04 22:48:34 · 32926 阅读 · 1 评论 -
Redis repl-disable-tcp-nodelay配置
Redis的Replication有一个配置“repl-disable-tcp-nodelay”在slave和master同步后(发送psync/sync),后续的同步是否设置成TCP_NODELAY假如设置成yes,则redis会合并小的TCP包从而节省带宽,但会增加同步延迟(40ms),造成master与slave数据不一致假如设置成no,则redis master会立即发送同步数据,没有延迟前者关注性能,后者关注一致性原创 2014-03-20 19:14:02 · 17622 阅读 · 1 评论 -
Redis源码分析:服务器编程模型
源码版本:redis 2.4.4Event-driven programming libray,提到这个,很容易想到如雷贯耳的libevent库(libeven封装了以下三种事件的响应:IO事件,定时器事件,信号事件)。redis的没有采用庞大的libevent库,而是自己写了一个,牺牲了一些平台通用性,但是性能非常强劲。memcache采用了libevent,有人认为这是redis的优原创 2011-12-13 23:33:27 · 6320 阅读 · 1 评论 -
Redis Sentinel源码分析(一)
Base 2.8.7在代码分析前,先总体介绍下sentinel 的机制。1. 下线定义sentinel对下线有两种定义:a.主观下线(sdown):sentinel实例本身对服务实例的判断b.客观下线(odown):多个sentinel实例对同一个服务SDOWN的状态做出协商后的判断,只有master才可能在odown状态简单的说,一个sentinel单独做出的判断只能是s原创 2014-03-31 18:59:03 · 20446 阅读 · 0 评论 -
Redis Sentinel源码分析(二)
sentinelTimer函数周期性运行,第一次在服务启动后1ms执行,后续执行周期1000/server.hz(sentinelTimer函数会修改server.hz的值)sentinelTimer内部包含sentinel模式需要定期执行的操作,包括check master、slave、sentinel的状态,并根据配置的条件判断是否需要fail over。原创 2014-03-31 19:09:32 · 14705 阅读 · 0 评论 -
Redis Sentinel的信息同步
Sentinel采用Gossip的思想来做sentinel信息的同步,11年写了一篇文章Gossip算法学习 ,可以看下其核心思想如下:1. 去中心化,各个节点之间完全对等,不需要任何的中心节点。2. 每个参与者都有关于一个自己信息的表, 同时每一个参与者要知道所有其他参与者的信息, 即要维护一个全局的表Sentinel本地维护了2个字典,包括其监控的各个master节点的信息原创 2014-04-14 19:35:41 · 13742 阅读 · 0 评论 -
Redis源码分析:主从复制
源码版本:redis 2.4.4redis的主从复制实现简单却功能强大,其具有以下特点:1. 一个master支持多个slave连接,slave可以接受其他slave的连接2. 主从同步时,master和slave都是非阻塞的redis主从复制可以用来:1. data redundancy 2. slave作为master的扩展,提供一些read-only的服务3.原创 2012-02-06 22:07:47 · 10150 阅读 · 0 评论 -
Redis源码分析:AOF
源码版本:redis 2.4.4AOF(append-only fashion)是redis持久化利器之一。通过写log的方式,以满足在需要的时候,重建数据的需求。the AOF persistence logs every write operation received by the server, that will be played again at server start原创 2012-01-11 22:08:15 · 5179 阅读 · 0 评论 -
初识Redis
1. 概述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 是原创 2011-12-13 23:32:51 · 3107 阅读 · 1 评论 -
Redis源码分析:snapshot
源码版本:redis 2.4.4redis的snapshot通过将内存中的所有数据写入文件,以达到持久化的目的。需要注意的是:1)snapshot方式不是追加,而是将内存所有数据写入文件,snapshot间隔短的话,会造成磁盘IO频繁2)在上一次做snapshot到当前,如果机器crash,期间修改过的数据会丢失redis支持两种方式做snapshot1)客户端发送bg原创 2012-01-13 18:16:53 · 4322 阅读 · 0 评论 -
Redis Cluster(Redis 3.X)设计要点
Redis 3.0.0 RC1版本10.9号发布,Release Note这个版本支持Redis Cluster,相信很多同学期待已久,不过这个版本只是RC版本,要应用到生产环境,还得等等Redis Cluster设计要点:架构:无中心Redis Cluster采用无中心结构,每个节点都保存数据和整个集群的状态每个节点都和其他所有节点连接,这些连接保持活跃使用gossip协议传播信息以及发现新节点原创 2014-10-13 18:57:35 · 26068 阅读 · 4 评论