手工备份(持久化)
备份命令:save
会在安装目录下生成一个dump.rdp文件。
恢复备份:只需要将dump.rdp放到安装文件夹下,启动即可。
查看安装目录命令:config get dir
redis可以设置有2种持久化设置选项,“快照”和“AOF”。
名称 | 描述 | 优点 | 缺点 |
---|---|---|---|
快照 | 默认情况下60秒刷新到disk一次[save 60 10000 当有1w条keys数据被改变时],Redis的数据集保存在叫dump.rdb一个二进制文件,这种策略被称为快照。 | 快照易恢复,适合文件也小 | 宕机等情况的时候快照的数据可能会不完整,且当文件很大会造成阻塞时,所以大文件不适合使用这种方式 |
AOF | 把每条写命令都写入文件,通过类似日志模式追加到磁盘 | 宕机时数据损失1秒以内,适合于大文件 | 有持续读写IO压力 |
快照
在硬盘上存储某一个时间点的数据。与之相关的配置参数:
-
Save
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
saveRedis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。 -
stop-writes-on-bgsave-error
当持久化出现错误时,数据库是否继续提供写的功能。Yes为不能写,no为可以继续写入。 -
rdbcompression
持久化到RDB文件时,是否压缩,“yes”为压缩,“no”则反之 -
dbfilename
持久化的文件
AOF
- appendonly
开启append only 模式之后,redis 会把所接收到的每一次写操作请求都追加到appendonly.aof 文件中,当redis 重新启动时,会从该文件恢复出之前的状态。但是这样会造成appendonly.aof 文件过大,所以redis 还支持了BGREWRITEAOF 指令,对appendonly.aof 进行重新整理。默认是不开启的。 - appendfsync
设置aof的同步频率,有三种选择always、everysec、no,默认是everysec表示每秒同步一次。 - no-appendfsync-on-rewrite
指定是否在后台aof文件rewrite期间调用fsync,默认为no,表示要调用fsync(无论后台是否有子进程在刷盘)。Redis在后台写RDB文件或重写afo文件期间会存在大量磁盘IO,此时,在某些linux系统中,调用fsync可能会阻塞。 - auto-aof-rewrite-percentage
指定Redis重写aof文件的条件,默认为100,表示与上次rewrite的aof文件大小相比,当前aof文件增长量超过上次afo文件大小的100%时,就会触发background rewrite。若配置为0,则会禁用自动rewrite - auto-aof-rewrite-min-size
指定触发rewrite的aof文件大小。若aof文件小于该值,即使当前文件的增量比例达到auto-aof-rewrite-percentage的配置值,也不会触发自动rewrite。即这两个配置项同时满足时,才会触发rewrite。