redis在运行时,所有数据都保存在内存里,进程结束后,会将数据写入硬盘中。启动时会读取硬盘里的内容,并将内容全部加载到内存。
redis的持久化有两种形式:RDB和AOF
1.RDB
默认的持久化方式,是对内存中的数据进行镜像,并以二进制的形式保存到dump.rdb文件中。会根据配置文件redis.conf的时间节点对文件进行持久化。
配置文件redis.conf:
保存目录
可以设置保存目录
mkdir /var/local/redis
vim /usr/local/etc/redis.conf
此时数据库文件路径:/var/local/redis/dump.rdb
优点:速度快,直接镜像内存里的数据,文件小。
缺点:数据有可能会丢失,在两次保存间隔内的数据,有可能会丢失。
2.AOF:
(Append only file)持久化,将修改的每一条指令记录进appendonly.aof中,需要修改配置文件,来打开aof功能。
appendfsync always:每次有新命令追加到aof文件时就执行一个持久化,非常慢但是安全
appendfsync everysec:每秒执行一次持久化,足够快(和使用rdb持久化差不多)并且在故障时只会丢失1秒钟的数据
appendfsync no:从不持久化,将数据交给操作系统来处理。redis处理命令速度加快但是不安全。
优点:适合保存增量数据,数据不丢失。
缺点:文件体积大,恢复时间长
实际使用中:
读取rdb加载缓存
读取aof ,删除aof文件