Redis的持久化操作

目录

一、Redis的持久化方式

1.RDB方式进行持久化

1.1 RDB的两种形式

        (a)自动快照:

        (b)手动快照

1.2.RDB的特点

1.3.RDB的使用情况

2.AOF方式进行持久化

2.1 AOF持久化

2.2 AOF重写机制

3.RDB和AOF使用情景


Redis虽然是缓存型数据库,但是它支持持久化操作

一、Redis的持久化方式

1.RDB方式进行持久化

通过快照的方式,将redis的内存结构记录到磁盘上面(记录的类型是二进制类型)

所以当redis服务停止后,再次启动redis就会去加载文件并且解析里面的数据,然后添加到内存当中

1.1 RDB的两种形式
        (a)自动快照:

当在指定的时间内key达到了某个数量的改变,那么就会触发自动快照

        (b)手动快照

1.前台快照(save):做快照需要一定的时间,在这个时间段中,如果客户端发送了命令过来,redis不会处理这个命令

2.后台快照(bgsave):启动一个线程去做快照,主线程处理客户端传过来的命令  (类似nginx的进程模型:master和work

1.2.RDB的特点

速度快(因为是redis的内存结构以二进制保存的)

数据可能会丢失(因为快照是以时间点拍摄的,所以在某个时间段的数据可能没有做快照)

所以会数据不安全

1.3.RDB的使用情况

当不在乎部分数据可能丢失的情况下可以用RDB,因为持久化速度快

2.AOF方式进行持久化

2.1 AOF持久化

每次会把对redis数据库的写命令写入到一个文件中,所以它的数据安全,每次都记录了写操作,但是正因为如此IO次数多,速度就慢

所以它的持久化就是在redis启动的时候会把所有命令再执行一遍

2.2 AOF重写机制

因为每一个写命令都会存到一个文件中,所以文件中的数据就会很多,存在很多无用数据,

所以就会保留下数据需要的最小集合

3.RDB和AOF使用情景

RDB和AOF都有着自己的特点,它们之间可以相辅相成,两个一起使用的时候,安全级别是最高的,在RDB和AOF都开启的情况下,优先会选择AOF

项目中一般都是通过redis做缓存,所以不怕redis中的数据丢失,因为在mysql做了持久化,所以这种情况下redis的持久化机制可以不必开启,这样redis的性能也就提升了

你可能感兴趣的:(redis,redis,数据库,缓存)