,内部使用了 I/O多路复用模型,如linux的epoll,使其能同时连接成千上万个客户端连接;
redis基础数据结构简单高效,如链表,字典,整数集合等,在此基础上实现用户能操作的对象:字符串,列表,...单线出来;
针对整个redis系统,则一直有其他线程进行异步任务出来,如 AOF,RDB等数据持久化任务;
单Reactor单线程模型
介绍
Reactor对象通过epoll监听事件,收到准备就绪的事件后通过...时间事件中有一个 默认执行的事件,功能如下
更新服务器各种统计信息,比如时间,内存占用,数据库占用情况
清理数据库中过期的键值对
关闭和清理连接失效的客户端
尝试进行AOF,RDB 持久化操作
如果服务器是主节点...,恢复时相当于重新执行命令);
缺点:因为是快照,频率过高会导致 资源浪费严重,但是频率低又会导致 宕机时数据丢失严重(最后一次快照后的数据都丢失);
BGSAVE命令的快照方式实现细节
涉及知识点
linux...; 此机制会在fork后,子进程访问内存时将内存空间指向父进程,也就是 子进程共享父进程的内存数据; 只有在 父或子进程对 内存数据进行写入时,才会触发将 父进程的内存空间中对应写的内存页数据复制一份给子进程