Redis教程

redis持久化机制RDB和AOF的概念及使用

本文主要是介绍redis持久化机制RDB和AOF的概念及使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

redis持久化机制RDB和AOF的概念及使用

  如果想redis仅作为纯内存的缓存来用,可禁止RDB和AOF所有的持久化机制

1. Redis持久化的作用:

  Redis 是内存数据库,其将自己的数据存储在内存中,如果 Redis 发生宕机,且没有进行持久化的,那么Redis 重启后将没有之前的数据。而通过持久化,Redis可以在重启后,快速找回之前的数据,防止大量请求打入数据库。

  对于企业级的redis架构来说,持久化是不可减少的
  企业级redis集群架构:海量数据、高并发、高可用

2. Redis持久化的重要性-缓存雪崩

  如Redis不可用了,要做的事是让Redis尽快变得可用,重启Redis,尽快让它对外提供服务,如果没做数据备份,这时Redis启动了也不可用,因为数据都没了。
  有可能大量的请求过来,缓存全部无法命中,在Redis里找不到数据,这时缓存雪崩问题,所有请求,没有在redis命中,就会去mysql数据库这种数据源头中去找,一下子mysql承接高并发,然后就挂了。

  mysql挂掉,数据也就无法恢复到Redis里面去。Redis的数据从mysql来。。。
   如果把Redis的持久化做好,备份和恢复方案做到企业级的程度,即使Redis故障了,也可通过备份数据,快速恢复,一旦恢复立即对外提供服务。

3. 持久化的方式:

快照(先把数据拷贝出来,做个备份):Mysql Dump 和 Redis   RDB
日志(某时某点的日志记录):MySQLBinlog和Hbase HLog和Redis   AOF

注:

如果同时用RDBAOF两种持久化机制,在redis重启时,会用AOF来重新构建数据,因AOF中的数据更加完整

3.1 RDB快照持久化方式

如何触发RDB持久化
  1. 手动save命令(同步)
save
  1. 手动bgsave命令(异步)
bgsave
  1. 通过配置自动触发。(自动)

RDB默认开启 在redis安装文件目录下使用如下命令关闭RDB

config set save ""

修改生成RDB的文件名
在这里插入图片描述

设置自动保存的间隔 在这里插入图片描述
每隔60s,如果超过1000个key发生了变更,就生成一个新的dump.rdb文件,当前redis内存中完整的数据快照,这个操作也被称之为snapshotting,快照

savebgsave区别

save

  • 该命令会阻塞当前redis服务器,执行save命令期间,redis不能处理其他命令,直到RDB过程完成为止。具体流程如下:

在这里插入图片描述bgsave

  • 执行该命令时,redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程如下:

在这里插入图片描述
两者总结

在这里插入图片描述






明天更新后续

这篇关于redis持久化机制RDB和AOF的概念及使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!