Redis--持久化的两种方式RDB和AOF以及一个取舍

本文深入解析Redis的两种持久化方式:RDB快照和AOF日志,包括它们的工作原理、优缺点及应用场景,帮助读者理解如何选择合适的持久化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是持久化
redis所有数据保持在内存中 对数据的更新将异步的保存在磁盘上

2.持久化的方式
快照 某时某点的copy mysql的Dump
redis的RDB

3.写日志 Mysql的Binlog
redis的AOF

4.什么是RDB
redis通过 save(同步) /bgsave(异步) /自动的方式把redis的数据完整的生成一个快照 保存在硬盘当中 也就是RDB文件(二进制)
5.save命令
是同步的 执行save命令的时候 其他命令要等待
5.bgsave命令
是异步的 其他命令不需要等待
执行bgsave命令 会使用linux的一个fork()函数 生成了主进程的一个子进程 这个子进程去完成 RDB文件(二进制)的生成 然后这个子进程会告诉主进程这个RDM文件生成成功了 bgsave successfully
6. 自动生成RDB文件的策略 (不推荐使用 不可控)redis.conf
在这里插入图片描述
意义:900秒做出一次改变
满足任意一条 就会自动生成RDB文件 生成策略是内部执行bgsave

测试:
1.save阻塞
2.bgsave fork
3.真的自动?
4.RDB长啥样
1.尽量不改变redis的原配置

  1. 新建 data文件 用于存放日志文件
    mkdir data
    2.新建 config文件 拷贝redis.conf的原配置
    cp redis.conf config
    3.修改配置文件名
    mv 原文件 新文件 : 剪切(具备重命名功能
    mv redis-6379.conf redis-6380.conf
    redis-6380.conf
    vim redis-6380.conf 进行配置
    4.port 6380 端口
    5.daemonize yes 是否以守护进程的方式启动
    6.logfile “6380.log” 日志文件名
    7.注释RDB自动的默认配置
    #save 900 1
    #save 300 10
    #save 60 10000

8.日志文件和RDB文件放在哪?
dir /usr/local/tem/redis/data
9.RDB文件名
dbfilename dump6380.rdb
10 . 保存退出
11.启动
redis-server /usr/local/tem/redis/config/redis-6380.conf
12.关闭redis
redis-cli -p 6380 shutdown

AOF:写日志的方式
redis写一个写命令的时候是放在缓冲区 然后根据通过某种策略同步到AOF文件中
在这里插入图片描述
三种策略:
1.always 每条命令都会同步到AOF文件中 不会丢失数据
2.everysec 没秒刷新一次 可能会丢失1秒数据 默认的
2.no 根据操作系统来刷新

AOF有重写的作用
减少磁盘的占用量
加速恢复速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值