redis:
1、NIO通信
因都在内存操作,所以逻辑的操作非常快,减少了CPU的切换开销,所以为单线程的模式(逻辑处理线程和主线程是一个)。
reactor模式,实现自己的多路复用NIO机制(epoll,select,kqueue等)
单线程处理多任务
2、数据结构
hash+bucket结构,当链表的长度过长时,会采取迁移的措施(扩展原来两倍的hash表,把数据迁移过去,expand+rehash)
3、存储
全量持久化(遍历redisDB,读取bucket中的key,value),save命令阻塞主线程,bgsave开启子进程进行snapshot持久化操作,生成rdb文件。
在shutdown时,会调用save操作
数据发生变化,在多少秒内触发一次bgsave
sync,master接受slave发出来的命令
增量持久化(aof),先写到日志buffer,再flush到日志文件中(flush的策略可以配置的,而已单条,也可以批量),