Redis相关的面试题有很多,其中Redis的持久化操作最为明显,普通的项目都是在用Redis来做缓存操作,而Redis的持久化就需要更典型的项目才会使用到,所以面试官提问这个问题就会更能了解你对Redis的使用程度。
持久化操作是什么?
在Redis中,持久化分为半持久化模式和全持久化模式。
半持久化模式就是将用户存入Redis的数据进行不一定期的保存至服务器磁盘空间中,这个方式是使用的异步方式来保存的。
持久化模式就是将每次用户存入Redis的数据保存到Append Only File文件中,这也是Redis的AOF模式。
Redis有哪些持久化方案
Redis一共提供了两种持久化方案,分别是AOF和RDB模式。
AOF模式
AOF模式,就是将数据的每一次的写入,或者删除操作,存储进指定的文本文件中,类似于日志插入操作。
这个AOF模式提供了三种配置策略,分别是每秒同步一次,每次修改进行同步一次和不同步三种配置策略,同步过程也都是异步形式来操作的。
因为这种模式是追加的形式,所以即使出现宕机,或者停电之类的变故,也只会损失少量数据,如果真是持久化一半的数据就出现了系统崩溃,Redis也给了相应的解决方案,可以在重启Redis之后通过redis-check-aop工具来保持数据的完整性。
RDB模式
RDB模式就是将当前所有的Redis内的数据进行统一的持久化,每次持久化后,都会将先前的历史持久化数据清除。
类似备份的意思,或者是快照,在系统出现问题后,可以通过这个文件将之前的老数据还原,对于灾难性问题的修复,其还是一个不错的选择。
在大数据量的持久化时,RDB要比AOF效率要高。