Redis是一个高效的内存数据库,所有的数据都存放在内存中。我们知道,内存中的信息会随着进程的退出或机器的宕机而消失。为此,Redis提供了两种持久化机制:RDB和AOF。这两种持久化方式的原理实际上就是把内存中所有数据的快照保存到磁盘文件上,以避免数据丢失。今天我们主要来介绍一下RDB持久化机制RDB的实现原理,涉及的文件为rdb.h和rdb.c。...
分类:
数据库 时间:
2016-06-02 11:41:33
阅读次数:
346
六:定时发送消息
哨兵每隔一段时间,会向其所监控的所有实例发送一些命令,用于获取这些实例的状态。这些命令包括:”PING”、”INFO”和”PUBLISH”。
“PING”命令,主要用于哨兵探测实例是否活着。如果对方超过一段时间,还没有回复”PING”命令,则认为其是主观下线了。
“INFO”命令,主要用于哨兵获取实例当前的状态和信息,比...
分类:
其他好文 时间:
2016-05-30 15:05:24
阅读次数:
312
sentinel(哨兵)是redis的高可用解决方案。由一个或多个sentinel实例组成的分布式系统,可以监控任意多个主节点,以及它们属下的所有从节点。当某个主节点下线时,sentinel可以将下线主节点属下的某个从节点升级为新的主节点。
一:哨兵进程
哨兵,本质上是redis服务器的一种运行模式。也就是说它们共用大部分的代码,只是哨兵模式中有部分代码是自己特有的。
...
分类:
其他好文 时间:
2016-05-30 15:03:13
阅读次数:
353
Redis内置数据结构之双向链表listhttp://blog.csdn.net/xiejingfa/article/details/50938028Redis内置数据结构之字符串sdshttp://blog.csdn.net/xiejingfa/article/details/50972592Redis内置数据结构之字典dicthttp://blog.csdn.net/xiejingfa/article/details/51018337Redis..
分类:
其他好文 时间:
2016-05-20 19:54:11
阅读次数:
221
Reids内部封装了一个I/O层,称之为rio。今天我们就来简单介绍一下rio模块的具体实现。本文主要涉及rio.h和rio.c两个文件。...
分类:
其他好文 时间:
2016-05-17 11:42:34
阅读次数:
215
使用的是centos7. 1、下载最新redis源码,解压(2016-05-12最新版本为3.2.0,3.0及以上才有官方集群) 2、进入源码根目录(此目录下的redis-stable目录),找到utils/create-cluster/下的create-cluster文件,此文件即redis集群管 ...
分类:
数据库 时间:
2016-05-13 07:44:40
阅读次数:
150
Redis的sentinel模式使用了Hiredis代码,Hiredis是redis数据库一个轻量级的C语言客户端库。它实现的向Redis发送命令的API函数redisCommand,使用方法类似于printf。因此只要熟悉redis命令,就可以很容易的使用该函数将redis命令字符串,转换成统一请求协议格式之后,发送给Redis服务器。
Hiredis库包含三类API:同步操...
Hiredis中的异步API函数需要与事件库(libevent,libev, ev)一起工作。因为事件循环的机制,异步环境中的命令是自动管道化的。因为命令是异步发送的,因此发送命令时,必要情况下,需要提供一个回调函数,以便在收到命令回复时调用该函数。
异步API涉及到的函数分别是:redisAsyncContext *redisAsyncConnect(const char *...
最近,我想通过redis的源码来学习redis。虽然平时工作中用得不多,不过对redis还是比较感兴趣的,毕竟它的性能是不错的。redis是一个开源的项目,我们可以通过源代码去了解redis。我后面会通过自己的学习,写一些关于redis源码的帖子。帖子的主要内容是分析代码设计,而并不会..
分类:
其他好文 时间:
2016-05-08 01:18:23
阅读次数:
241
今天,我们来讨论两点内容:一是Redis是如何存储类型对象的,二是Redis如何实现键的过期操作。本文介绍的内容主要涉及db.c和redis.h两个文件。...
分类:
数据库 时间:
2016-05-06 14:49:01
阅读次数:
302