1. Redis简介
Redis是一个基于Key-Value存储系统的内存数据库。
Redis支持多种Value数据类型,包括String、Hash、List等。
Redis的特点是数据存在内存中,读写速度非常快,并且支持持久化到磁盘中备份。
2. Redis持久化方式
2.1 RDB持久化
Redis通过RDB方式持久化数据,即将当前内存中的所有数据快照写入到磁盘上的一个文件中。
如果需要对Redis进行备份或者重启服务器,可以通过加载这个快照文件来将数据恢复回来。
在Redis.conf配置文件中设置RDB快照的间隔和开启方式:
save 900 1
save 300 10
save 60 10000
以上配置意为,当900秒内至少有一个Key被修改了,Redis才会将当前内存中所有数据写入硬盘;
30秒内至少有10个Key被修改了,Redis才会将当前内存中所有数据写入硬盘;
60秒内如果有10000个Key被修改了,Redis会将当前内存中所有数据写入硬盘。
2.2 AOF持久化
AOF持久化方式是将Redis的所有写操作追加到一个Append Only File(AOF)日志文件中,以保证数据的持久化。AOF文件的内容是可以读取的,以便备份或者恢复数据。
Redis.conf配置文件操作:
appendonly yes
appendfsync always
以上配置意为,打开AOF持久化方式,并将写操作都即时地写入磁盘。
3. Redis无畏宕机快速恢复
3.1 RDB持久化方式恢复
当Redis重启时,可以通过加载RDB快照文件来恢复内存中的数据。
Redis通过默认的RDB快照文件名dump.rdb来判断是否有可用的快照文件,如果有则会自动加载快照文件。
在Redis.conf配置文件中设置RDB快照文件的存储路径:
dir /var/lib/redis
以上配置意为,将RDB快照文件存储到/var/lib/redis目录中。
3.2 AOF持久化方式恢复
当Redis重启时,可以通过Redo log重演方式来从AOF文件中快速恢复数据。
Redis通过读取AOF文件中的写操作记录来还原内存中的数据。
在Redis.conf配置文件中设置AOF日志文件的存储路径:
dir /var/lib/redis
appendfilename "appendonly.aof"
以上配置意为,将AOF日志文件存储到/var/lib/redis目录中,并且设置AOF日志文件名为appendonly.aof。
4. 总结
Redis通过快速的内存读写和持久化到磁盘的方式,保证了数据的安全性和可靠性。当Redis遇到宕机和重启等问题时,可以通过RDB和AOF持久化的方式来快速恢复数据,保证了应用的高可用性。