redis
文章平均质量分 83
lkness
学不见其长,但日有所增
展开
-
redis7.0aof源码解析
所以7.0版本的aof使用多个文件来记录数据,子进程使用base文件记录fork点的所有数据(默认名为:appendonly.aof..base.),而incr文件由父进程创建来同时记录aof期间收集的写操作(默认名为:appendonly.aof..incr.aof),manefest文件来记录base、incr的文件信息(默认名为appendonly.aof.manefest)。当aof文件过大(超过64M)或者增长过大,触发重写aof操作,即重新执行。的内容写到aof文件的逻辑。原创 2023-06-27 10:12:23 · 312 阅读 · 0 评论 -
redis7.0rdb源码解析
rdb(redis database)是redis持久化方法中的一种,通过一次性将redis内存中的数据全量快照落盘,达到持久化的目的。rdb的实现方法分为阻塞和非阻塞,阻塞就是执行快照期间不执行其它业务逻辑保证数据一致性,非阻塞就是fork子进程使用fork时候的主进程数据来落盘同时主进程还能对外提供服务。rdb的触发方式也分为手动和自动,手动就是redis客户端调用save或者bgsave,自动就是通过配置文件的save字段配置触发条件以及别的例如主从复制、flushall、shutdown时触发。原创 2023-06-19 11:06:27 · 256 阅读 · 0 评论 -
redis7.0入口函数和事件循环简单分析
redis7.0依然还是单线程为主,单线程循环处理:1、客户端数据接收、数据处理、数据响应2、epoll_wait监听3、定时逻辑判断当然也存在工作线程异步处理耗时任务,例如大key的删除、大对象的free等。而如果是用户设置有io多线程模式,则主线程处理客户端数据接收、数据响应变成主线程阻塞通知io线程完成任务,也就是用io线程加速io读写(redis速度提升1倍)。原创 2023-05-11 15:39:27 · 411 阅读 · 0 评论