Redis的事件机制】的更多相关文章

目录 一.Redis的运行过程 二.事件数据结构 2.1 文件事件数据结构 2.2 事件事件数据结构 3.3 事件循环 三.事件的注册过程 3.1 文件事件的注册过程 3.2 时间事件的注册过程 四.套接字文件事件 4.1 TCP连接建立事件 4.2 客户端套接字读事件 4.3 向客户端返回数据 Redis程序的运行过程是一个处理事件的过程,也称Redis是一个事件驱动的服务.Redis中的事件分两类:文件事件(File Event).时间事件(Time Event).文件事件处理文件的读写操作…
Redis源码阅读(一)事件机制 Redis作为一款NoSQL非关系内存数据库,具有很高的读写性能,且原生支持的数据类型丰富,被广泛的作为缓存.分布式数据库.消息队列等应用.此外Redis还有许多高可用特性,包括数据持久化,主从模式备份等等,可以满足对数据完整性有一定要求的场景. Redis的源码结构简单清晰,有大量材料可以参阅:通过阅读Redis源码,掌握一些常用技术在Redis中的实现,相信会对个人编程水平有很大帮助.这里记录下我阅读Redis源码的心得.从我自己比较关心的几个技术点出发,每…
SUMMARY 能做什么 DEMO 原理图 应用场景 能做什么 A2DFramework的事件机制是基于发布订阅模式改进得来的一套API,中间件部分实现了msmq.redis.Supersocket可替换.能够实现较彻底的模块事件传递过程中的解耦,支持分布式环境.由于订阅端采用了消息队列作为转发层,因此也能支持事件量很大的场景. DEMO Demo工程下载地址(可右键保存): 发布订阅Demo.rar 一.建立各个工程,并且加入A2DFramework.EventService的引用 二.给各个…
随笔- 102  文章- 3  评论- 476  发布订阅 - 基于A2DFramework的事件机制实现   SUMMARY 能做什么 DEMO 原理图 应用场景 能做什么 A2DFramework的事件机制是基于发布订阅模式改进得来的一套API,中间件部分实现了msmq.redis.Supersocket可替换.能够实现较彻底的模块事件传递过程中的解耦,支持分布式环境.由于订阅端采用了消息队列作为转发层,因此也能支持事件量很大的场景. DEMO Demo工程下载地址(可右键保存): 发布订阅…
http://blog.csdn.net/acceptedxukai/article/details/18136903 http://blog.csdn.net/acceptedxukai/article/details/18181563 本文所引用的源码全部来自Redis2.8.2版本. Redis AOF数据持久化机制的实现相关代码是redis.c, redis.h, aof.c, bio.c, rio.c, config.c 在阅读本文之前请先阅读Redis数据持久化机制AOF原理分析之配…
Redis是一个基于内存的键值数据库,其内存管理是非常重要的.本文内存管理的内容包括:过期键的懒性删除和过期删除以及内存溢出控制策略. 最大内存限制 Redis使用 maxmemory 参数限制最大可用内存,默认值为0,表示无限制.限制内存的目的主要 有: 用于缓存场景,当超出内存上限 maxmemory 时使用 LRU 等删除策略释放空间. 防止所用内存超过服务器物理内存.因为 Redis 默认情况下是会尽可能多使用服务器的内存,可能会出现服务器内存不足,导致 Redis 进程被杀死 maxm…
Redis缓存失效的故事要从EXPIRE这个命令说起,EXPIRE允许用户为某个key指定超时时间,当超过这个时间之后key对应的值会被清除,这篇文章主要在分析Redis源码的基础上站在Redis设计者的角度去思考Redis缓存失效的相关问题. Redis缓存失效机制 Redis缓存失效机制是为应对缓存应用的一种很常见的场景而设计的,讲个场景: 我们为了减轻后端数据库的压力,很开心的借助Redis服务把变化频率不是很高的数据从DB load出来放入了缓存,因此之后的一段时间内我们都可以直接从缓存…
Redis键通知机制 一.概念 自从redis2.8.0以后出了一个新特性,Keyspace Notifications 称为“键空间通知”. 这个特性大概是,凡是实现了Redis的Pub/Sub的客户端,只需要订阅相应Channel,就可以获得对Key操作的一些事件,从而可以处理一些业务. 比如: 1.当你del一个key时,就可以触发一个del事件通知. 2.一个key的失效时间到了,就会触发expire事件通知. 3.对一个库所有key操作,都可以获取通知.比如对0库所有key的操作. 注…
为什么需要内存回收? 原因有如下两点: 在 Redis 中,Set 指令可以指定 Key 的过期时间,当过期时间到达以后,Key 就失效了. Redis 是基于内存操作的,所有的数据都是保存在内存中,一台机器的内存是有限且很宝贵的. 基于以上两点,为了保证 Redis 能继续提供可靠的服务,Redis 需要一种机制清理掉不常用的.无效的.多余的数据,失效后的数据需要及时清理,这就需要内存回收了. Redis 的内存回收机制 Redis 的内存回收主要分为过期删除策略和内存淘汰策略两部分. 过期删…
1    Redis的主从复制 1.1   什么是主从复制 持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,不过通过redis的主从复制机制就可以避免这种单点故障,如下图: 说明: n  主redis中的数据有两个副本(replication)即从redis1和从redis2,即使一台redis服务器宕机其它两台redis服务也可以继续提供服务. n  主redis中的数据和从re…