Redis持久化分两种:
- RDB
- AOF
RDB:当数据库中的key-value值有进行相应的增删改时,每经过一段时间,对数据库进行一次快照,保存为dump.rdb
文件,服务器每次重启时都会将dump.rdb
里的数据读到redis中
配置RDB的方法:
在redis.conf
文件里
save 900 1 当900秒内(15分钟)有1个key-value值发生改变时,进行快照
save 300 10 当300秒内(5分钟)有10个key-value值发生改变时,进行快照
save 60 10000 当60秒内(1分钟)有10000个key-value值发生改变时,进行快照
AOF:使用日志功能保存数据
默认AOF是关闭的
AOF机制有三种:
always:每一条aof记录都立即同步到文件,这是最安全的方式,也以为更多的磁盘操作和阻塞延迟,是IO开支较大。
everysec:每秒同步一次,性能和安全都比较中庸的方式,也是redis推荐的方式。如果遇到物理服务器故障,有可能导致最近
一秒内aof记录丢失(可能为部分丢失)。
no:redis并不直接调用文件同步,而是交给操作系统来处理,操作系统可以根据buffer填充情况/通道空闲时间等择机触发同步;这是一种普通的文件操作方式。性能较好,在物理服务器故障时,数据丢失量会因OS配置有关。
AOF的配置:
在redis.conf
文件里
开启AOF机制
appendonly yes(从no修改为yes)
AOF文件保存路径
appendfilename "appendonly.aof"
默认AOF机制为appendfsync everysec
可以自行修改
修改完成后重启服务器即可
./redis-cli shutdown
./bin/redis-server ./redis.conf