java缓存存放到内存之中,当服务器重启以后,内存的数据将丢失,而reids作为缓存,重启reids以后 数据是不是也会丢失,redis服务器重启以后数据也不会丢失,这个是redis提供了持久化的功能。redis支持高可用,持久化 是关键之一
什么叫持久化:将内存数据 存放到硬盘
redis的持久化分为两种(AOF 和RDB(默认开启))
RDB持久化特性:RDB 是以二进制文件存放,是在某个时间段,将操作的数据写入到一个临时文件,持久化结束后,用这个文件代替档次的持久化文件。
RDB的优点:使用单独子进程来进行持久化,主进程不会进行任何IO 操作,保证了redis 的高性能
RDB的缺点:由于RDB的存储方式是在间隔一段时间以内,所以 如果在这个间隔时间内 服务器宕机了,则会发生数据丢失
RDB配置的方式:
save 900 1 save 时间 key的个数:表示更改1个key时间间隔900s进行持久化
save 300 10 表示更改10个key时间间隔300s进行持久化
save 60 10000 表示更改10000个key时间间隔60s进行持久化
可以自己配置 操作key的个数 和时间 间隔来 进行rdb持久化
注意:在redis正常退出的时候 即使没有达到sava 的情况 也会进行保存持久化 例如 我现在 操作10个key 在300s以内 会保存。。但是我只操作了9个 退出 redis 他也会持久化保存,但是 如果是断电或者kill-9 杀死进程 则不会保存
方法二:AOF持久化方式
Append-only file,将“操作+ 数据”以格式化指令的方式追加到操作日志文件的尾部,在append 操作返回后(已经写入到文件或者即将写入),才进行实际的数据变更,“日志文件”保存了历史所有的操作过程;当server 需要数据恢复时,可以直接replay 此日志文件,即可还原所有的操作过程。AOF 相对可靠,AOF 文件内容是字符串,非常容易阅读和解析。
AOF优点:可以保持更高的数据完整性,
AOF缺点:日志文件大,恢复比较慢
在reids.conf文件中可以查看