Redis数据持久化存储

1. redis的数据持久化

1.1 RDB持久化

rdb持久化模式,是基于内存数据快照的方式,通过save指令,强制快照数据到本地,存储为一个二进制文件

  1. 准备配置文件,redis-rdb.conf

    daemonize yes
    port 6379
    logfile /data/6379/redis.log
    dir /data/6379              #定义持久化文件存储位置,此文件夹需要手动创建
    dbfilename  dbmp.rdb        #rdb持久化文件
    bind 127.0.0.1    #redis绑定地址
    requirepass redhat            #redis登录密码
    save 900 1                    #rdb机制 每900秒 有1个修改记录就持久化存储
    save 300 10                    #每300秒        10个修改记录
    save 60  10000                #每60秒内        10000修改记录
    
  2. 启动redis服务端

    # 先把已有的redis进程干掉,再启动
    redis-server redis-rdb.conf
    
  3. 登录redis,写入数据,手动执行save触发持久化,会生成一个二进制的数据文件 dbmp.rdb

1.2 AOF持久化

记录服务器执行的所有变更操作命令(例如set del等),并在服务器启动时,通过重新执行这些命令来还原数据集

  1. 准备配置文件,redis-aof.conf

    daemonize yes
    port 6379
    logfile /data/6379/redis.log
    dir /data/6379
    appendonly yes
    appendfsync everysec
    
    # 下面是AOF持久化配置的两条参数解释
    -----------------------------------
    appendonly yes
    appendfsync  always    总是修改类的操作
                 everysec   每秒做一次持久化
                 no     依赖于系统自带的缓存大小机制
    
  2. 启动redis服务端

    redis-server redis-aof.conf 
    
  3. 写入数据,检查redis数据目录/data/6379/是否产生了aof文件

    [root@web02 6379]# ls
    appendonly.aof  dbmp.rdb  redis.log
    

2. redis 持久化方式有哪些?有什么区别?

rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能

aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog

3. redis在不重启的状态下,如何将rdb持久化切换到aof持久化中

1.准备一个支持rdb的数据库 ,启动rdb方式的redis,准备一个新的配置文件,支持rdb
redis-new-rdb.conf 配置内容如下:
------------------------------
daemonize yes
port 6379
logfile /opt/6379/redis.log
dir /opt/6379
dbfilename  dbmp.rdb
save 900 1             
save 300 10          
save 60  10000              
------------------------------

2.通过命令切换为aof模式,仅仅是临时生效,切换到aof,切换后还得修改配置文件
127.0.0.1:6379> CONFIG set appendonly yes   #开启AOF功能
OK
127.0.0.1:6379> CONFIG SET save ""  #关闭RDB功能
OK

3.还得修改redis的配置文件,让他下次重启也是aof
修改redis-new-rdb.conf  为如下配置,以后重启也是aof了
--------------------------
daemonize yes
port 6379
logfile /opt/6379/redis.log
dir /opt/6379
appendonly yes
appendfsync everysec
---------------------------
重启redis数据库

4.至此redis已经切换到 aof模式下了
posted @ 2022-04-11 18:01  Z-J-H  阅读(212)  评论(0)    收藏  举报