ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis持久化配置:rdb和aof

2021-08-13 20:02:49  阅读:202  来源: 互联网

标签:aof 快照 AOF 配置 redis 默认 rdb 持久


原文参考:https://www.cnblogs.com/xuwenjin/p/9876432.html

redis有两种持久化方式:RDB和AOF。具体差别跟优缺点可参考redis数据的两种持久化方式对比,本篇只介绍这两种方式怎么配置

RDB配置方式

默认情况下,是快照RDB的持久化方式,将内存中的数据以快照的方式写入二进制文件中,默认的文件名是dump.rdb

redis.conf默认配置:

save 900 1
save 300 10
save 60 10000

 配置含义:

 900秒内,如果超过1个key被修改,则发起快照保存

 300秒内,如果超过10个key被修改,则发起快照保存

 60秒内,如果1万个key被修改,则发起快照保存

 默认配置不方便看效果,可将快照频率设大一点,在redis.conf中增加一行:

save 10 1

保存后,启动redis服务端和客户端。在客户端输入命令:

输入完,发现dump.rdb文件的修改日期变了,并且redis服务端增加了保存日志:

接下来,重启redis服务端和客户端,看数据是否真的持久化了:

妥妥的~,说明使用RDB快照持久化成功了

 

AOF 配置方式

redis.conf默认配置:

appendonly no

配置文件中的appendonly修改为yes,开启AOF持久化。开启后,启动redis服务端,发现多了一个appendonly.aof文件

使用AOF做持久化,每一个命令以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写,使得 AOF文件的体积不会超出保存数据集状态所需的实际大小。实际上,AOF持久化并不会立即将命令写入到硬盘文件中,而是写入到硬盘缓存,在接下来的策略中,配置多久来从硬盘缓存写入到硬盘文件。所以在一定程度一定条件下,还是会有数据丢失,不过你可以大大减少数据损失

# appendfsync always
appendfsync everysec
# appendfsync no

配置含义:

always: 每次操作都会立即写入aof文件中

everysec: 每秒持久化一次(默认配置)

no: 不主动进行同步操作,默认30s一次

当然always一定是效率最低的,个人认为everysec就够用了,数据安全性能又高。Redis也允许我们同时使用两种方式,再重启redis后会从AOF中恢复数据,因为AOF比RDB数据损失小嘛

配置好后,启动redis客户端,输入命令:

最后的flushall是清除所有的键值。打开appendonly.aof文件,可以看到:

去掉最后面的flushall(也可以按照redis协议增加命令),重启客户端和服务端,看数据是否真的持久化了:

妥妥的~,说明使用AOF持久化也成功了

标签:aof,快照,AOF,配置,redis,默认,rdb,持久
来源: https://www.cnblogs.com/super-chao/p/15138923.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有