3

Redis持久化是如何实现的

 1 year ago
source link: https://blog.51cto.com/codeshallow/5895776
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Redis持久化是如何实现的

精选 原创

浅羽技术 2022-11-29 16:13:47 博主文章分类:Redis ©著作权

文章标签 持久化 数据 redis 文章分类 Java 编程语言 yyds干货盘点 阅读数241

Redis持久化:

redis的一大特点就是可以将数据进行持久化,在一定程度上确保了数据的安全性,但不是绝对的;

持久化分为rdb(快照持久化)和aof(精细持久化);

快照持久化,是默认开启的;会自动保存数据,当启动时会在文件夹中生成dump.rdb文件;存放持久化后的数据;

当然我们也可以设置持久化的频率,在redis.conf文件中通过save进行设置,默认有三种情况,每秒超过一万数据或每5分钟有10条数据的时候再或者每15分钟有1条记录,都会执行快照持久化,

当然也可以通过bgsave的方法来手动进行一个快照持久化;(也可以通过ip和端口号就给别人进行手动持久化);

如果频繁的快照持久化,会降低性能和效率,

但是这样也出现了一个问题,就是当一分钟内如果有一万条数据时,不会提交,但是在下一次提交之前,停电了,这样就会丢失掉这些数据;

当时想到的解决方法呢就是和(AOF)精细持久化进行一个结合,达到一个秒级的持久化;

这个持久化需要我们手动进行开启,(注意,AOF开启之后,之前的数据都会丢失,所以要在一开始使用时就要配置好)开启的方法就是在配置redis.conf,将appendonly 改为yes;同时还可以更改文件名称;然后重新启动服务,这时精细化持久化就启动好了;

Redis持久化是如何实现的_redis

在快照持久化的同时,我们进行精细持久化,

比如,我们每隔一个小时进行一次快照持久化,这中间我们添加精细持久化;当55分的时候宕机了,我们还是可以通过RDB和AOF来恢复我们的数据,尽可能减少了损失;等到一个小时以后我们进行了快照持久化,数据就会保存在rdb的文件中,我们就可以将aof的持久化文件重新开始;

Redis持久化是如何实现的_持久化_02

关于精细持久化存在三个配置

  • always只要发生改变就会发生持久化,这样是很浪费性能的,不推荐使用(我们的CPU不用干其他工作了,就在这里看着持久化)

  • everysec每秒进行一次快照持久化;推荐使用这种

  • no 是不确定,看服务器的使用情况(心情)来定(不安全,不推荐)

我们还可以通过把rdb文件和aof文件复制到另外一个redis服务器上,就可以共享数据;

  • 打赏
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK