Redis单线程单Reactor网络模型
redis单线程里不能执行十分耗时的流程,不然会客户端响应不及时
解决方法一:
beforesleep里删除过期键操作若存在大量过期键时,会耗费大量时间,redis采用的策略之一就是采用timelimit方案超过阈值就退出下次循环再来处理
解决方法二:
beforesleep里待发给客户端数据太多未发完时不会阻塞在这会创建写文件时间在文件事件流程里发送
解决方法三:
开启TCP_NODELAY提高tcp响应速度,否则发送小包数据时得等200ms超时才会发送
解决方法四:
可开启SO_KEEPALIVE长连接减少不必要的连接建立和销毁过程增加响应速度
redis单线程里不能执行十分耗时的流程,不然会定时任务执行不及时
解决方法:
在处理文件事件前会查找最近时间事件作为epoll_wait超时依据来确保下一个循环能在定时事件时间到达时及时执行