何为持久化?
利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制叫做持久化。
为什么要持久化?
为了防止数据的因为一些意外而丢失,确保数据的安全性。
Redis的持久化
Reids的持久化有两种方式:RDB(基于数据快照的方式存储数据)、AOF(基于操作日志的回退实现存储数据)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
RDB持久化
redis如果实现RDB的持久化命令呢,有三种方式能够实现RDB方式的持久化操作
save命令可以对redis数据库中的数据进行持久化,但是save命令阻塞任务队列,影响服务器的性能。
- save命令(手动)
save命令可以对redis数据库中的数据进行持久化,save命令是手动实现redis的RDB持久化。
redis数据库只有一个name数据,
redis默认的RDB持久化文件 --dump.rdb
当我们执行save命令后
RDB持久化文件 --dump.rdb大小发生变化,持久化生效
save命令阻塞任务队列,影响服务器的性能,通常不使用。
- bgsave命令(手动)
bgsave命令也是手动实现redis的RDB持久化,但是它不会阻塞任务队列。
bgsave命令的持久化会调用操作系统的fork函数,生成子进程,不会阻塞redis访问的任务队列。
- 配置文件RDB持久化(自动)
redis通过配置文件实现RDB持久化是将持久化过程交给redis进行,我们只需要在配置文件设置持久化的规则。规则定义在启动redis配置文件中。
通过配置文件可以实现redis实现自动rdb持久化操作!!!!!!!
RDB持久化基于快照,但是当redis服务器宕机时,会出现数据丢失。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
AOF持久化
- 开启aof持久化需要在redis-server的配置文件中设置aof相关配置
- appendsync 持久化策略
设置好配置文件中配置信息,就开启了redis的aof持久化。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------RDB vs AOF