Redis
Redis故障诊断
慢日志查询
安装、启动与连接
常用命令
常用命令2
主从
高可用(SENTINEL)
持久化(RDB、AOF)
集群(CLUSTER)
集群扩容与收缩
管理Redis
备份与恢复
内存使用情况
客户端
数据迁移
Redis配置
Python使用redis
Redis监控指标
本文档使用MrDoc发布
返回首页
-
+
持久化(RDB、AOF)
2020年4月16日 19:09
admin
#RDB ##启用RDB >####方式一:命令临时启用 redis> config set save "900 1 300 10 60 10000" #设置 redis> config get save #获取 >![](/media//202004/2020-04-16190353771247.png) --- >####方式二:修改配置文件永久启用 vim /etc/redis.conf >![](/media//202004/2020-04-16190506245130.png) >###策略说明:900 1 表示900秒内有超过1各键发生了改变,则会进行一次RDB快照. --- ##禁用RDB redis> config set save "" 或者 把配置文件的save信息注释掉 ##手动RDB redis> save #命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。 #一般来说,在生产环境很少执行 SAVE 操作,因为它会阻塞所有客户端,保存数据库的任务通常由 BGSAVE 命令异步地执行。然而,如果负责保存数据的后台子进程不幸出现问题时, SAVE 可以作为保存数据的最后手段来使用。 redis> bgsave #在后台异步(Asynchronously)保存当前数据库的数据到磁盘。 ##查看RDB redis> lastsave #返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。 >[UNIX时间戳在线转换工具](https://tool.lu/timestamp/ "UNIX时间戳在线转换工具") redis> info persistence # Persistence loading:0 rdb_changes_since_last_save:0 rdb_bgsave_in_progress:0 #是否正在转储 0:否 1:是 rdb_last_save_time:1586946991 #跟lastsave命令一样 rdb_last_bgsave_status:ok #转储是否成功 rdb_last_bgsave_time_sec:0 rdb_current_bgsave_time_sec:-1 #表示正在进行bgsave的持续时间 ##恢复RDB >![](/media//202004/2020-04-16191619918037.png) #1.定时备份RDB文件 crontab -e */10 * * * * cp /var/lib/redis/dump.rdb /var/lib/redis/dump_bak/dump.$(date+%Y%m%d%H%M).rdb --- #2.将要还原的RDB文件复制到dir指定的位置 cp /var/lib/redis/dump_bak/dump.202004161930.rdb /var/lib/redis/ --- #3.关闭实例 redis> shutdown nosave --- #4.将RDB文件重命名为dbfilename定义的名称 mv /var/lib/redis/dump.202004161930.rdb /var/lib/redis/dump.rdb --- #5.重启redis --- #AOF ##启用AOF >####方式一:命令临时启用 redis> config set appendonly yes #设置 --- >####方式二:修改配置文件永久启用 vim /etc/redis.conf >![](/media//202004/2020-04-16194714399634.png) ##禁用AOF redis> config set appendonly no 或者 把配置文件中appendonly改为no ##修改AOF >####可通过appendfsync来调整调用fsync的频率 >always: 对每个命令都调用fsync,由于fsync是一个阻塞调用,redis性能会下降(不推荐) >everysec: 每秒调用一次fsync(推荐) >no: 永远不调用fsync >![](/media//202004/2020-04-16195425952248.png) ##重写AOF redis> bgrewriteaof #执行一个 AOF文件 重写操作。重写会创建一个当前 AOF 文件的体积优化版本。 ##修复AOF src/redis-check-aof --fix appendonly.aof #RDB和AOF结合使用 vim /etc/redis.conf aof-use-rdb-preamble yes #开启混合持久化功能 --- >####注意:当redis启动时,即便RDB和AOF持久化同时启用RDB、AOF文件都存在,则redis总是会先加载AOF文件,因为AOF文件被认为能够更加鲁棒的数据一致性。 >####当加载AOF文件时,如果启用了混合持久化,那么redis将首先检查AOF的前5个字符,如果是REDIS,那么该AOF文件就是混合格式的,redis服务器会先加载RDB部分,然后再加载AOF部分。
分享到: