015-学习Redis-持久化方案-bgsave/rdb/aof

015-学习Redis-持久化方案

  • 一、回顾Redis
    • 1、redis的特点
    • 2、redis提供了磁盘持久化
  • 二、方案一:bgsave
    • 1、如何操作
    • 2、优缺点
  • 三、方案二:配置文件rdb
    • 1、配置文件解说:
    • 2、优缺点:
  • 四、方案三:aof
    • 1、 修改配置文件:
      • 修改配置后,重启服务:
    • 2、优缺点

一、回顾Redis

bgsave:简单、需要频繁的敲击命令
dump.rdb:默认开启。会根据配置自动存储数据到rdb文件里面。缺点是容易丢失数据
appenonly.aof:实时把命令记录到aof文件当中,重启时会从aof中读取命令,也就是“从敲了一遍”。 缺点是:文件会越来越大

实际项目如何抉择:
允许小概率事件丢失,则rdb
不允许丢失事件,则aof更好一点

1、redis的特点

redis是一个内存中的数据结构存储系统。优点:内存操作速度比硬盘很快。缺点:但是内存没有办法保存数据。

2、redis提供了磁盘持久化

通过磁盘持久化功能,就可以把内存中的数据,持久化到磁盘当中去。数据就可以长时间的进行保存。

二、方案一:bgsave

1、如何操作

启动redis-cli 客户端,输入一条数据,并输入持久化命令basave就可以完成持久化数据。
015-学习Redis-持久化方案-bgsave/rdb/aof_第1张图片

2、优缺点

  • 优点:简单。一个命令,就可以将存储内存的数据,持久化到磁盘当中。
  • 缺点:频繁使用命令。每当存储一个数据,就需要使用此命令。

三、方案二:配置文件rdb

rdb是redis自带的持久化方案。默认会开启的。
redis保存到内存的数据,当达到规定的实际、更改Key的数量,会保存在/user/local/redis/bin/dump.rdb的文件中。

1、配置文件解说:

dump.rdb的文件,会根据配置多少秒发生Key的变化,就会把数据存到dump.rdb文件中去。当重新启动时,会先去dump.rdb中去取出数据,放在数据库当中。

1、dbfilename dump.rdb 文件名字
2、dir ./ 目录 。文件存在的位置
015-学习Redis-持久化方案-bgsave/rdb/aof_第2张图片
900秒之内只要有一个key发生变化,就会把key的值存储到磁盘当中。
015-学习Redis-持久化方案-bgsave/rdb/aof_第3张图片

2、优缺点:

优点:文件配置后,数据自动化持久化到磁盘。当更改配置后,就不需要在手动配置了。
缺点:不能事实持久化。例如在59秒,10000个数据发生了变化。突然宕机了,那么就会无法持久化。
在这里插入图片描述

四、方案三:aof

redis提供的第三种方案:aof
追加apendonly ,把我们输入的命令会追加到 appenonly中去,后台开启了一个线程,每当我们输入一条命令,就会把命令追加到appenonly文件当中。当我们重启项目时,会先来appenonly文件读取内容(相当于我们冲敲打一遍命令)。

1、 修改配置文件:

配置文件:vim /user/local/redis/bin/redis.conf
015-学习Redis-持久化方案-bgsave/rdb/aof_第4张图片

修改配置后,重启服务:

下面是重启服务前 以及 重启服务后,bin目录:
015-学习Redis-持久化方案-bgsave/rdb/aof_第5张图片
当我们插入一条数据后:发现.aof文件,会有相应的信息。
在这里插入图片描述
015-学习Redis-持久化方案-bgsave/rdb/aof_第6张图片

2、优缺点

优点:实时记录命令,实施持久化到磁盘

缺点:时间的积累,aof文件非常的大,时间的积累重启redis,就非常的慢。
当我们频繁使用redis,开了aof。有数万条数据,如果都放在aof当中,aof文件会非常的大。如果宕机了,并重启服务器后,redis会先去aof文件去读取命令,那么会去读数G的文件大小的内容。会非常的慢。

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