Redis高级-分布式缓存RDB原理

分布式缓存

1.1.2.RDB原理

bgsave开始时会fork主进程得到子进程,子进程共享主进程的内存数据。完成fork后读取内存数据并写入 RDB 文件。

fork采用的是copy-on-write技术:

  • 当主进程执行读操作时,访问共享内存;
  • 当主进程执行写操作时,则会拷贝一份数据,执行写操作。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.1.3.小结

RDB方式bgsave的基本流程?

  • fork主进程得到一个子进程,共享内存空间
  • 子进程读取内存数据并写入新的RDB文件
  • 用新RDB文件替换旧的RDB文件

RDB会在什么时候执行?save 60 1000代表什么含义?

  • 默认是服务停止时
  • 代表60秒内至少执行1000次修改则触发RDB

RDB的缺点?

  • RDB执行间隔时间长,两次RDB之间写入数据有丢失的风险
  • fork子进程、压缩、写出RDB文件都比较耗时

1.2.AOF持久化

1.2.1.AOF原理

AOF全称为Append Only File(追加文件)。Redis处理的每一个写命令都会记录在AOF文件,可以看做是命令日志文件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.2.2.AOF配置

AOF默认是关闭的,需要修改redis.conf配置文件来开启AOF:

# 是否开启AOF功能,默认是no
appendonly yes
# AOF文件的名称
appendfilename "appendonly.aof"

AOF的命令记录的频率也可以通过redis.conf文件来配:

# 表示每执行一次写命令,立即记录到AOF文件
appendfsync always 
# 写命令执行完先放入AOF缓冲区,然后表示每隔1秒将缓冲区数据写到AOF文件,是默认方案
appendfsync everysec 
# 写命令执行完先放入AOF缓冲区,由操作系统决定何时将缓冲区内容写回磁盘
appendfsync no

三种策略对比:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-14 12:52:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-14 12:52:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-14 12:52:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-14 12:52:02       18 阅读

热门阅读

  1. CentOS 7源码包与RPM包软件安装详解

    2024-04-14 12:52:02       19 阅读
  2. Linux 忘记密码解决方法

    2024-04-14 12:52:02       16 阅读
  3. Django的APP应用更名(重命名)流程

    2024-04-14 12:52:02       17 阅读
  4. Qt 2 QMap&QHash&QVector类实例

    2024-04-14 12:52:02       13 阅读
  5. 设计模式,模板方法模式、原型模式

    2024-04-14 12:52:02       14 阅读
  6. MYSQL原理学习篇简记(三)

    2024-04-14 12:52:02       19 阅读
  7. 爬虫开发教程

    2024-04-14 12:52:02       17 阅读
  8. 蓝桥杯算法题:小数第n位

    2024-04-14 12:52:02       15 阅读
  9. Qt第六章对话框

    2024-04-14 12:52:02       19 阅读
  10. SpringBoot 异步延时任务

    2024-04-14 12:52:02       35 阅读