reactor网络模型
1.组成:非阻塞io+io多路复用
2.特征: 事件循环+事件驱动实现业务逻辑
流程图:
示例代码:
listenfd=socket()
bind(listenfd,add)
efd =epoll_create(0);
epoll_ctl(efd,epoll_ctl_add,listenfd,&ev);
while(1)
{
epoll_event ev[];
int nevents=epoll_wait(efd,ev,events,timeout);
for(int i=0;ifd==listenfd)
{
//建立连接的事件
}
else
{
if(e->events&epollin|epollhup){}
if(e->events&epollout){}
if(e->events&epollerr){}
}
}
}
在reactor模型基础上,每监听到一个事件时创建一个线程。
redis 是数据结构数据库。
1.v:string ,hash,set,zset,stream ,list
2.redis :存储数据的时候是变化的。
hash:<=512节点 压缩列表 >512 dict
zset: <=128 节点 压缩列表 >128 使用跳表
set :intset dict 存储