设为首页
收藏本站
切换到宽版
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
论坛
BBS
排行榜
Ranklist
搜索
搜索
热搜:
香港vps
香港VPS
amh
机柜
vps
分销
VPS
域名出售
火车头
云主机
不限流量
香港服务器
美国服务器
香港
全能空间
whmcs
digitalocean
本版
帖子
用户
MJJ论坛
»
论坛
›
技术交流分享
›
Web技术
›
详解Redis持久化(RDB和AOF)
返回列表
查看:
6718
|
回复:
1
详解Redis持久化(RDB和AOF)
[复制链接]
uov
uov
当前离线
积分
11453
发表于 2022-3-15 19:35:26
|
显示全部楼层
|
阅读模式
什么是Redis持久化?
Redis读写速度快、性能优越是因为它将所有数据存在了内存中,然而,当Redis进程退出或重启后,所有数据就会丢失。所以我们希望Redis能保存数据到硬盘中,在Redis服务重启之后,原来的数据能够恢复,这个过程就叫持久化。
Redis持久化的两种方式?RDB和AOF
AOF:会将每次执行的命令及时保存到硬盘中,实时性更好,丢失的数据更少
RDB:会根据指定的规则定时将内存中的数据保存到硬盘中。
通常两种方式结合使用,下面详细介绍RDB和AOF
AOF
Append Only File,AOF会保存服务器执行的所有写操作到日志文件中,在服务重启以后,会执行这些命令来恢复数据。
日志文件默认为appendonly.aof,Redis以Redis协议格式将命令保存至aof日志文件末尾,aof文件还会被重写,使aof文件的体积不会大于保存数据集状态所需要的实际大小
默认情况下,aof没有被开启。需要在redis.conf开启
appendonlyyes
日志文件名
appendfilename"appendonly.aof"
日志文件所在目录(RDB日志文件也是在这里)
dir ./
fsync持久化策略
appendfsync everysec
always:命令写入aof_buf后立即调用系统fsync操作同步到AOF文件,fsync完成后线程返回。这种情况下,每次有写命令都要同步到AOF文件,硬盘IO成为性能瓶颈,Redis只能支持大约几百TPS写入,严重降低了Redis的性能;即便是使用固态硬盘(SSD),每秒大约也只能处理几万个命令,而且会大大降低SSD的寿命。no:命令写入aof_buf后调用系统write操作,不对AOF文件做fsync同步;同步由操作系统负责,通常同步周期为30秒。这种情况下,文件同步的时间不可控,且缓冲区中堆积的数据会很多,数据安全性无法保证。everysec:命令写入aof_buf后调用系统write操作,write完成后线程返回;fsync同步文件操作由专门的线程每秒调用一次。everysec是前述两种策略的折中,是性能和数据安全性的平衡,因此是Redis的默认配置,也是我们推荐的配置。
回复
举报
npuer
npuer
当前离线
积分
4868
发表于 2022-10-19 21:59:27
|
显示全部楼层
bd
回复
举报
还有一些帖子被系统自动隐藏,点此展开
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
美国VPS综合讨论
Offers专区
服务器维护
美国服务器
支付工具讨论
Archiver
|
手机版
|
小黑屋
|
MJJ论坛
Copyright
MJJ论坛
© 2022 All Rights Reserved.
快速回复
返回顶部
返回列表