2015年8月10日
摘要: 这里主要讲的Redis是怎么样设置过期键的,可以算作后续"Redis过期键的删除策略"的前篇或者说预备知识。在了解过期键问题前我们首先需要对redis的数据库和数据库键空间有一定的了解:structredisServer{//...//一个数组,保存着服务器中的所有数据库redisDb*db; /... 阅读全文
posted @ 2015-08-10 19:39 lukexwang 阅读(23620) 评论(0) 推荐(0) 编辑
2015年8月7日
摘要: 在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),如图所示。假设现在有两个Redis服务器,地址分别为127... 阅读全文
posted @ 2015-08-07 21:39 lukexwang 阅读(56104) 评论(3) 推荐(9) 编辑
摘要: AOF、RDB和复制功能对过期键的处理生成RDB文件在执行SAVE命令或者BGSAVE命令创建一个新的RDB文件时,程序会对数据库中的键进行检查,已过期的键不会被保存到新创建的RDB文件中。举个例子,如果数据库中包含三个键k1、k2、k3,并且k2已经过期,那么当执行SAVE命令或者BGSAVE命令... 阅读全文
posted @ 2015-08-07 11:53 lukexwang 阅读(3072) 评论(1) 推荐(3) 编辑
2015年8月6日
摘要: 初始化服务器状态结构redis中一个最重要的数据结构是redis_server,会创建一个这个结构的全局变量server,初始化服务器的第一步就是创建一个struct redisServer类型的实例变量server作为服务器的状态,并为结构中的各个属性设置默认值。初始化server变量的工作由re... 阅读全文
posted @ 2015-08-06 21:16 lukexwang 阅读(4790) 评论(0) 推荐(0) 编辑
摘要: Redis服务器是典型的一对多服务器程序:一个服务器可以与多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复。对于每个与服务器进行连接的客户端,服务器都为这些客户端建立了相应的redis.h/redisClient结构(客户端... 阅读全文
posted @ 2015-08-06 19:57 lukexwang 阅读(496) 评论(0) 推荐(0) 编辑
摘要: Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其他服务器)的通信会产生相应的文件事件,而服务器则通过监听并处理这些事... 阅读全文
posted @ 2015-08-06 13:29 lukexwang 阅读(3752) 评论(1) 推荐(0) 编辑
2015年8月5日
摘要: 上一篇对RDB的源码分析是比较多的,但是AOF持久化执行进行了一些理论上的分析和概念的说明。本来想自己偷一些懒,将上篇文章中最后所给链接的AOF实现代码随便过一过算了,后来也就是在过的过程中发现自己这也看不懂那也看不懂才知道AOF的重要性和难度。后来又花了不少时间查阅资料、结合源代码分析,对AOF的... 阅读全文
posted @ 2015-08-05 17:46 lukexwang 阅读(1668) 评论(0) 推荐(0) 编辑
2015年8月4日
摘要: 基础知识部分如果需要掌握Redis的整个命令的执行过程,那么必须掌握一些基本的概念!否则根本看不懂,下面我就一些在我看来必备的基础知识进行总结,希望能为后面命令的整个执行过程做铺垫。事件Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(file event):Redis服务器... 阅读全文
posted @ 2015-08-04 19:41 lukexwang 阅读(309) 评论(0) 推荐(0) 编辑
2015年8月3日
摘要: 以前也学过一些shell,不过学得并不是很深入,动手写的代码的时间也不是很多。前不久将shell比较细的过了一遍,leader布置了任务让用shell写一个脚本将redis源码压缩包从一个服务器上传到另外一个服务器,同时在本服务器上传入命令,解压源码包并在另一个服务器上启动redis服务。虽然学了一... 阅读全文
posted @ 2015-08-03 22:02 lukexwang 阅读(7743) 评论(0) 推荐(0) 编辑
摘要: 为防止数据丢失,需要将 Redis 中的数据从内存中 dump 到磁盘,这就是持久化。Redis 提供两种持久化方式:RDB 和 AOF。Redis 允许两者结合,也允许两者同时关闭。RDB 可以定时备份内存中的数据集。服务器启动的时候,可以从 RDB 文件中恢复数据集。AOF(append onl... 阅读全文
posted @ 2015-08-03 14:55 lukexwang 阅读(2121) 评论(0) 推荐(0) 编辑