redis|持久化配置

RDB

RDB是把当前进程数据生成快照保存到磁盘上

手动触发生成快照

save
bgsave
  • save:会阻塞当前Redis服务器,直到RDB过程完成
  • bgsave:Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束,阻塞只发生在fork阶段,一般时间很短

自动触发

vim /etc/redis/redis.conf
save 900 1
save 300 10
save 60 10000
  • 如果900秒内有1条数据发生变化,则进行快照
  • 如果300秒内有10条数据发生变化,则进行快照
  • 如果60秒内有10000条数据发生变化,则进行快照
# 备份文件名称
dbfilename dump.rdb
# 备份文件路径
dir /var/lib/redis/data/
# 如果持久化出错,主进程是否停止写入
stop-writes-on-bgsave-error yes
# 是否启用压缩
rdbcompression yes
# 导入时是否检查文件
rdbchecksum yes

AOF

AOF是将数据先写入内存,然后再写入日志的方式备份数据

配置

vim /etc/redis/redis.conf
# 开启AOF持久化
appendonly yes
# 备份文件名
appendfilename "appendonly.aof"
# 备份文件路径
dir /var/lib/redis/data/
# 同步策略
# always:同步写进磁盘
# everysec:每秒都写进磁盘
# no:操作系统控制的写进磁盘
appendfsync everysec
# aof重写期间是否暂停数据同步
no-appendfsync-on-rewrite no
# 重写触发配置
# 如果AOF文件的大小超过上次AOF文件重写后的1倍(100%),触发重写操作
auto-aof-rewrite-percentage 100
# 如果AOF文件大小高于64mb,触发重写操作
auto-aof-rewrite-min-size 64mb
# 指定在Redis启动时,如果发现文件末尾被截断时的处理方式:
# yes:表示加载截断后的 AOF 文件,并在日志中记录截断信息
# no:表示放弃加载截断后的 AOF 文件,并在日志中记录错误信息。此时,Redis 服务器将拒绝启动。
aof-load-truncated yes
# 文件重写策略
aof-rewrite-incremental-fsync yes

混合持久化

单独使用RDB:RDB持久化是基于时间间隔的,如果Redis在快照过程中崩溃,可能会导致数据丢失

单独使用AOF:AOF文件通常比RDB文件大,恢复速度较慢。AOF持久化需要将每一个写操作记录到磁盘上,这个过程会消耗一定的I/O资源。如果同步频率较高,每次写操作后都需要进行磁盘同步,这会显著影响Redis的性能

使用混合持久化配置,Redis将在AOF文件的开头添加一个RDB快照,从而加快恢复速度,同时继续记录 AOF日志以确保数据的持久性,测试的时候如果发现aof没有自动重写压缩文件,那是因为没有首次重写,需要文件达到64mb之后才能正常进行

除了合理配置RDB和AOF的参数之外,还需配置:

# 启用混合持久化
aof-use-rdb-preamble yes

如果aof-use-rdb-preamble参数没有设置为yes,Redis将只使用AOF持久化,而不会在AOF文件中包含 RDB 快照

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!