什么是Redis的持久化?
可能很多人很少接触这个词,总觉的我们Redis的所有数据都是全部能够永久存储的。然而你可能不知道的是,Redis的数据都是在内存当中的,如果没有持久化策略,你关闭Redis或者之后,你的数据有可能全部都丢失了。我们每再一次登录Redis访问上一次数据的时候,我们都看到了原来的数据,就是得益于Redis的持久化。Redis的持久化简单说就是,将Redis存在内存中的值存储到可以永久存储的地方(磁盘等)
Redis的持久化方案
- RDB Redis DataBase
- AOF Append Only File
RDB Redis DataBase
RDB 是 Redis 默认的持久化方案。当满足一定条件的时候,会把当前内存中的数据写入磁盘,生成一个快照文件 dump.rdb。Redis 重启会通过加载 dump.rdb 文件恢复数据。dump.rdb是我们redis文件当中的一个,位置如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HhQ8SbzO-1627894210787)(https://ask8088-private-1251520898.cn-south.myqcloud.com/developer-images/article/7948575/ah1xbo289c.png?q-sign-algorithm=sha1&q-ak=AKID2uZ1FGBdx1pNgjE3KK4YliPpzyjLZvug&q-sign-time=1627893909;1627901109&q-key-time=1627893909;1627901109&q-header-list=&q-url-param-list=&q-signature=a73afec3b369103a6f391d30d4823dd6edcfd91d)]
RDB是怎么实现持久化的
RDB是按照规则来触发持久化存储的,在我们的redis.conf中我们可以看到如下的几个配置:
save 900 1 # 900 秒内至少有一个 key 被修改(包括添加)
save 300 10 # 300 秒内至少有 10 个 key 被修改
save 60 10000 # 60 秒内至少有 10000 个 key 被修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FBvXxLSf-1627894210792)(https://ask8088-private-1251520898.cn-south.myqcloud.com/developer-images/article/7948575/potum9cuqd.png?q-sign-algorithm=sha1&q-ak=AKID2uZ1FGBdx1pNgjE