Redis中的事件
来源:互联网 发布:sql删除 编辑:程序博客网 时间:2024/06/08 09:19
Redis服务器是一个事件驱动程序,服务器需要处理两类事件:文件事件和时间事件。
一、文件事件
Redis服务器通过套接字与客户端进行连接,文件事件就是服务器对套接字操作的抽象。
文件事件是由文件事件处理器处理的。文件事件处理器以单线程方式运行,使用I/O多路复用程序监听多个套接字(既实现了高性能的网络通信模型又可以很好地与Redis服务器中其他单线程方式运行的模块进行对接,保持了Redis内部单线程设计的简单性),I/O多路复用程序将产生事件的套接字放到一个队列中,然后通过这个队列以有序、同步、每次一个套接字的方式向文件事件分派器传送套接字。一次完整的客户端与服务器连接事件如图所示:
Redis为文件事件编写了多个文件事件处理器:
(1)连接应答处理器:监听套接字,对连接的客户端进行应答;
(2)命令请求处理器:接收客户端的命令请求;
(3)命令回复处理器:向客户端返回命令执行的结果;
(4)复制处理器:主从服务器进行复制操作;
二、时间事件
Redis服务器中的一些操作需要在给定的时间执行,时间事件就是对定时操作的抽象。
Redis服务器将所有的时间事件都放在一个无序链表中(新的事件事件总是插入到链表的表头),每当时间事件执行器运行时,都会遍历整个链表,查找已经到达的时间事件,并调用相应的事件处理器进行处理。Redis中时间事件分两类:
(1)定时事件:让一段程序在指定的时间执行一次。
(2)周期性事件:让一段程序每融指定的时间执行一次。
因此,从事件处理的角度来看,Redis服务器的运行流程可以用以下流程图来概括:
参考文献
1、http://www.redis.net.cn/tutorial/3506.html
2、《Redis设计与实现》第二版---黄健宏
3、https://github.com/xingzhexiaozhu/redis-3.0-annotated
4、http://www.yiibai.com/redis/redis_strings.html
- Redis 中的事件循环
- Redis中的事件
- 深入理解Redis 中的事件循环
- Redis源码解析:13Redis中的事件驱动机制
- redis 事件
- Redis 事件
- redis事件
- redis 事件
- Redis事件
- 【redis】事件
- redis事件监听及在订单系统中的使用
- Redis 事件(1) -- 文件事件
- Redis 事件(2) -- 时间事件
- redis的事件机制
- 深入浅出redis事件框架
- redis的事件框架
- redis 事件处理
- redis的事件机制 .
- Java多线程总结之由synchronized说开去
- Wifi源码学习之wifi连接
- 121. Best Time to Buy and Sell Stock 最佳买卖股票时间
- 一些从源码编译 pytorch的时候的问题
- 乌云平台资料
- Redis中的事件
- 搭建Nginx服务器
- C++文件流式读写
- CosmoMC第一次测试
- web删除文件例程
- 在jsp页面中直接读取.properties文件中的配置
- linux下安装idle和运行(linux下有两个python版本如何运行其中一个)
- Junit的使用
- JVM(七)对象的访问定位