Redis源码学习之【epoll封装】
来源:互联网 发布:乐视视频无法连接网络 编辑:程序博客网 时间:2024/06/07 12:55
介绍
在上一篇博文中说到了在Redis 的事件处理中使用到了底层的linux epoll,根据Redis的实现可以使用其他的多路通信层,但是在一般的linux服务器中使用的最多的还是epoll所以这里主要介绍一下epoll。Redis并没有直接的使用linux的epoll而是对其进行了一个简单的封装。
源码
ae_epoll.c
分析
在原有的linux epoll的基础上进行封装,主要封装了一下几个函数:
aeApiCreate:调用epoll_create创建epoll的句柄,并分配epoll事件。
aeApiFree:调用close关闭epoll_create创建的epoll句柄,并释放epoll事件。
aeApiAddEvent:调用epoll_ctl向aeEventLoop中添加一个事件。
aeApiDelEvent:调用epoll_ctl从aeEventLoop中删除一个事件。
aeApiPoll:调用epoll_wait等待事件。
具体的关于epoll的介绍可以参见博文:点击打开链接
0 0
- Redis源码学习之【epoll封装】
- Redis源码学习之【epoll封装】
- Redis源码学习之【Tcp Socket封装】
- Redis源码学习之【Tcp Socket封装】
- Redis源码学习之【前言】
- Redis源码学习之【链表】
- Redis源码学习之【前言】
- Redis源码学习之【链表】
- redis源码学习之字典
- Redis 源码学习之 Redis 事务
- 小白学c++之epoll封装
- libevent2.0源码学习三:对网络模型的(EPOLL)的封装
- libevent2.0源码学习三:对网络模型的(EPOLL)的封装
- redis源码解析----epoll的使用
- redis源码解析----epoll的使用
- Redis源码学习之【动态字符串】
- Redis源码学习之【内存分配】
- Redis源码学习之【哈希字典】
- Activity的LaunchMode和taskAffinity
- 新手
- 利用好PHP5.3的新特性,实现单例模式
- spring scheduled annotation 实例一
- 线程之pthread_barrier_create
- Redis源码学习之【epoll封装】
- Redis源码学习之【Tcp Socket封装】
- Redis源码学习之【网络通信框架】
- Spatial Pyramid的BOW和Pyramid HOG的多核
- Redis源码学习之【命令协议格式】
- 使用vfork函数时出现“总线错误”
- Redis安装启动
- 在OC中获取C的数据类型
- shell scripts学习(三)