RDB和AOF持久化

  • Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失。

5.1 RDB持久化

  • 分两种情况 可以手动执行 也可以配置文件自动定期执行
  • 触发机制:
    1. 手动在redis数据库中执行save命令
    2. conf中配置触发条件, save 200 10 表示200秒内有10个修改类的操作就会执行保存
  1. 建立redis配置文件

    配置文件  s21_rdb.conf 内容如下 ,有关rdb的配置参数是 	
    dbfilename  dbmp.rdb  
    save 900 1  
    
    daemonize yes
    port 6379
    logfile /data/6379/redis.log             #没有需要创建这个 mkdir -p	递归创建
    dir /data/6379            		        #定义持久化文件存储位置
    dbfilename  s21redis.rdb        		#rdb持久化文件
    bind  127.0.0.1   		                #redis绑定地址
    requirepass redhat          		 
    save 900 1                  		  
    save 300 10                  	 	             		 
    save  20  2                              #在20秒内,超过2个修改类的操作
    
  2. 根据上述的设置,只要修改次数 满足save的设置就会在 规定的dir位置生成对应的文件名称的存储文件。另一种方式是直接在redis交互环境下 可以直接使用命令 save进行存储。

    127.0.0.1:6379> save
    OK
    
  3. 这种方式存储的 rdb存储文件 为二进制文件 不可读

5.2 AOF持久化

  • AOF机制, 将你的修改类的操作命令,直接追加到日志文件中

  • 同样需要修改aof的配置文件,添加如下参数。核心功能参数是

    appendonly yes
    appendfsync  always    总是修改类的操作
                 everysec   每秒做一次持久化
                 no     依赖于系统自带的缓存大小机制
    
  1. 创建aof配置文件s21aof.conf ,内容如下

    daemonize yes
    port 6379
    logfile /data/6379/redis.log
    dir /data/6379
    appendonly yes
    appendfsync everysec   #每秒做一次持久化
    
  2. 以这个conf文件开启redis后,在data目录下会有对应的aof文件,此时每次有修改操作就会读入这个文件。通过这样的机制达成持久化存储。

  3. 优缺点

    • 优点:最大程序保证数据不丢
    • 缺点:日志记录非常大

5.3 redis不重启 RDB切换到AOF存储

  • 前提:保证 redis 保证是 4.0版本以上

    redis-server -v
    
  1. redis.conf 服务端配置文件

    daemonize yes
    port 6379
    logfile /data/6379/redis.log
    dir /data/6379            #定义持久化文件存储位置
    dbfilename  s21redis.rdb  #rdb持久化文件
    bind  127.0.0.1   		 #redis绑定地址
    requirepass redhat          		  
    save 900 1                  		  
    save 300 10                  	 	
    save  20  2  #在20秒内,超过2个修改类的操作
    
  2. 正常通过 RDF启动redis

    redis-server s21_rdb.conf 
    redis-cli
    
  3. 执行AOF转化持久化命令

    127.0.0.1:6379> CONFIG set appendonly yes   #开启AOF功能
    OK
    127.0.0.1:6379> CONFIG SET save ""  #关闭RDB功能
    OK
    
  4. 注意:想要永久切换为aof,还得修改配置文件方可

posted @ 2019-11-05 16:45  Kn19ht  阅读(129)  评论(0编辑  收藏  举报