redis持久化到mysql的方案_redis实现持久化存储的两种方案

一.简单说明

redis是非关系型数据库,是一种内存型数据库。数据存储在内存中,所以当我们关掉软件,或者拔掉电源时,内存中的数据就会丢失。针对此场景,这里提出持久化的方案。它的核心就是将内存中的数据存储到硬盘中进行持久化。

RDB: 基于快照的持久化,速度更快,一般用作备份。主从复制也是依赖于rdb持久化功能。

AOF:以追加的形式记录redis操作日志的文件。可以最大程度保证redis数据安全,类似于mysql的binlog。

二.持久化存储的方案

2.1 方案一___RDB持久化

这个是redis默认的持久化的方案,它的原理是在一定时间内检测key的变化情况,然后持久化数据。它可以手动执行save来触发持久化数据,也可以通过配置redis.conf文件,执行定时执行。

RDB持久化产生的RDB文件是一个经过压缩的二进制文件,这个文件保存在硬盘中,redis可以通过这个文件还原数据库当时的状态。涉及核心配置如下:

[root@k8s001 ~]# cat /etc/redis.conf

dbfilename s17dump.rdb # 指定rdb的数据文件

bind 0.0.0.0

requirepass redhat # 指定redis的密码

save 900 1 # 代表900秒内,有1个修改key的操作,就进行持久化

save 300 10 # 300秒内,有10个修改类的操作,就持久化

save 60 10000 # 60秒内,有10000个修改类的操作,就持久化

优点:速度快,适合做备份,主从复制就是基于RDB持久化功能实现

2.2 方案二__AOF持久化

这里不需要手动的save触发持久化。

记录服务器执行的所有变更操作命令(例如set del等),并在服务器启动时,通过重新执行这些命令来还原数据集。AOF 文件中的命令全部以redis协议的格式保存,新命令追加到文件末尾。

涉及核心配置如下:

[root@k8s001 ~]# cat /etc/redis.conf

appendonly yes # 开启aof持久化的参数

appendfsync everysec # 每秒进行一次aof持久化

优点:最大程度保证数据不丢失。

缺点:日志记录非常大

RDB 优点:访问性能最佳 缺点:数据不安全、fork消耗极大

AOF 优点:数据相对安全 缺点:访问性能相对不在最佳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值