redis每隔N分钟或N次操作后,从内存中获取数据形成dump.rdb文件,压缩后备份在目录中,这个动作就是快照
dump.rdb文件默认会在redis的安装目录下
如果要改变rdb文件的存储位置,在配置文件中找到下面的配置项
dir ./ # ./ 表示存储位置为当前目录
dump.tdb文件的文件名也可以在配置文件中修改
dbfilename dump.rdb # 备份文件的默认文件名
redis快照配置,在配置文件中(redis.windows.conf)找到下面几行配置
save 900 1 #900秒内超过1个键被修改,则发起快照
save 300 10 #300秒超过10个键被修改,则发起快照
save 60 10000 #60秒内超过10000个键被修改,则发起快照
如果将上面几行都注释掉,即关闭快照
手动发起快照
在redis命令行登录状态下,执行下面的命令
bgsave
在未登录状态下执行
./redis-cli -a 密码 bgsave
因为快照的执行是有一定时间间隔的,所以如果redis以外挂掉的话,就会丢失最后一次快照之后的所有数据的修改,但是为了不让用户的操作丢失redis记录了用户每次的操作,aof日志
在redis的配置文件中找到以下配置项
appendonly yes #表示启用aof日志
appendfilename appendonly.aof #保存日志的文件,可以指定该文件的路径
aof的触发条件配置项,下面配置三选一
appendfsync always # 每次接收到命令都写入磁盘,保证数据安全性,但比较消耗服务器资源
appendfsync everysec # 每秒钟向磁盘中写入一次,推荐使用此配置
appendfsync no #完全依赖os,但性能最好
如果将用户的所有操作都记录下来,aof文件必然占用很多磁盘空间,所以可以将aof文件重写来节省磁盘空间,redis可以配置自动重写,在配置文件中
auto-aof-rewrite-percentage 100 # 100 表示文件大小比起上一次重写,文件大小增长率为100%时执行重写
auto-aof-rewrite-min-size 64mb # 64mb 表示文件至少超过64M时,执行重写
no-appendfsync-on-rewrite yes # 在导出rdb快照的过程中,是否停止同步aof,建议改成yes,
当然也可以手动重写aof文件
在redis命令行登录状态下
bgrewriteaof
未登录状态下
./redis-cli -a 密码 bgrewriteaof