标签:工作 sum l命令 后台 db文件 行数据 ima size 目的
目前,Redis支持两种持久化方式:AOF持久化和RDB持久化。AOF持久化方式会将每次执行的命令及时保存到硬盘中;而RDB持久化方式会根据指定的规则“定时”将内存中的数据保存到硬盘中。AOF持久化方式的实时性更好,也就是当进程意外退出时,丢失的数据更少。
AOF持久化保存服务器执行的所有写操作命令到单独的日志文件中,在服务器重启时,通过加载日志文件中的这些命令并执行来恢复数据,这个日志文件就是AOF文件,Redis将会以Redis协议格式来保存AOF文件中的所有命令,新命令会被追加到文件的结尾。在服务器的后台,AOF文件还会被重写,使得AOF的文件体积不会大于保存数据集状态所需的实际大小。
#通过修改配置文件redis.conf中的appendonly参数开启
appendonly yes
#AOF文件的位置设置
dir 目录
#修改AOF文件名称
appendfilename "appendonly.aof"
Redis为AOF缓冲区的同步提供了多种策略,策略涉及操作系统的write(文件写入)和fsync(文件同步)函数。为了提高文件的写入效率,当用户调用write函数将数据写入文件中时,操作系统会将这些数据暂存到一个内存缓存区中,当这个缓存区被填满或者超过了指定时限后,才会将缓存区的数据写入硬盘中,这样做既提高了效率,有吧奥正了安全性。
AOF触发方式
随着服务器运行时间的增加,AOF文件的内容数据会越来越大,文件占据的内存也会变大。
定期重写AOF文件,以达到压缩的目的。
如果在Redis服务器启动加载AOF文件时,发现AOF文件被损坏了,那么服务器会拒绝加载这个AOF文件,以此来确保数据的一致性不被损坏。而AOF损坏的原因可能是程序对AOF文件进行写入与同步时,服务器出现停机故障。
修复方法:
及时备份现有的AOF文件。
#利用Redis自带的redis-check-aof程序,对原来的A文件进行修复
$ redis-check-aof -fix
使用diff-u来对比原始AOF文件和修复后的AOF文件,找出两个文件的不同之处。
修复AOF文件之后,重启Redis服务器重新加载,进行数据恢复。
优点:
缺点:
在指定的时间间隔内,RDB持久化可以生成数据集的时间点快照。就是可以通过快照来实现RDB持久化。在指定的时间间隔内,Redis会自动将内存中的所有数据生成一份副本并存储在硬盘上,这个过程就是"快照"。
根据Redis配置文件redis.conf中的配置自动进行快照处理。
? Redis配置文件redis.conf中的默认设置
#表示在900秒内有1个或1个以上的键被修改就会进行快照处理
save 900 1
#表示在300秒内有10个或10个以上的键被修改就会进行快照处理
save 300 10
#表示在60秒内有1000个或1000个以上的键被修改就会进行快照处理
save 60 1000
默认情况下,Redis将数据库快照保存在名为dump.rdb的文件中,这个文件被称为RDB文件,它是一个经过压缩的二进制文件。Redis服务器会自动对RDB文件进行压缩。在Redis配置文件redis.conf中,默认开启压缩。
#默认为开启压缩
rdbcompression yes
#通过命令修改
CONFIG SET rdbcompression no
加载
加载RDB文件的工作有rdb.c/rdbLoad函数完成。
save m n:表示在时间m内被修改的键的个数大于n时,会触发BGSAVE命令的执行。
stop-writes-on-bgsave-error yes:当执行BGSAVE命令出现错误时,Redis是否终止执行写命令。
rdbcompression yes:是否开启RDB压缩文件,默认为yes表示开启,不开启为no
rdbchecksum:是否开启RDB文件的校验,在服务器进行RDB文件的写入与读取时会用到
dbfilename dump.rdb:用于设置RDB文件名,可以通过命令来修改它
CONFIG SET dbfilename RDB 文件名
优点:
缺点:
建议同时使用AOF持久化和RDB持久化,以便最大限度的保证数据的持久化与安全性。
标签:工作 sum l命令 后台 db文件 行数据 ima size 目的
原文地址:https://www.cnblogs.com/striver20/p/13780488.html