`

Redis持久化rdb和aof

阅读更多
1. Redis持久化

所有的数据都存在内存中,从内存当中同步到硬盘上,这个过程叫做持久化过程。

持久化操作,两种方式:rdb方式、aof方式,可以单独使用或者结合使用。
使用方法:
    rdb持久化方法:在指定的时间间隔写入硬盘
    aof方式:将以日志,记录每一个操作,服务器启动后就构建数据库。

配置可以禁用持久化功能。
也可以同时使用两种方式。


2. Redis的持久化之RDB方式

RDB方式在Redis是默认支持的。
    优势:只有一个文件,时间间隔的数据,可以归档为一个文件,方便压缩转移(就一个文件)。
    劣势:如果宕机,数据损失比较大,因为它是没一个时间段进行持久化操作的。也就是积攒的数据比较多,一旦丢失无法找回。

查看配置文件
    [root@#localhost ~]# cd /usr/local/redis/
    [root@#localhost redis]# vi redis.conf
    /save n查找下一个
        save 900 1  表示每900秒内至少有1个kery发生变化,就持久化
        save 300 10  表示每300秒内至少有10个key发生变化,就持久化
        save 60 10000  表示每60秒内至少有10000个key发生变化,就持久化
    /dbfilename n查找下一个
        dbfilename dump.rdb 保存的持久化的文件名 默认是dump.rdb
    /dir n查找下一个
        dir ./ 表示文件存储路径是当前路径
    :q 退出
查看当前路径里确实是有这个文件
    [root@#localhost redis]# ll
    总用量 52
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root   433 2月  27 07:04 dump.rdb
    -rw-r--r--. 1 root root 46697 2月  27 05:03 redis.conf

删除掉rdb文件,再启动redis,确保缓存中没有数据
    [root@#localhost redis]# rm -rf dump.rdb
    [root@#localhost redis]# ll
    总用量 48
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root 46697 2月  27 05:03 redis.conf
    [root@#localhost redis]# bin/redis-server redis.conf
    [root@#localhost redis]# ll
    总用量 48
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root 46697 2月  27 05:03 redis.conf
    [root@#localhost redis]# bin/redis-cli
    127.0.0.1:6379> keys *
    (empty list or set)

保存几个数据,然后shutdown save保存退出
    127.0.0.1:6379> set key1 name
    OK
    127.0.0.1:6379> set key2 pass
    OK
    127.0.0.1:6379> set key3 word
    OK
    127.0.0.1:6379> shutdown save
    not connected> exit

再重启redis,这时候启动过程会进程rdbcheck验证然后加载redis目录下rdb文件,加载数据成功。
    [root@#localhost redis]# bin/redis-server redis.conf
    [root@#localhost redis]# bin/redis-cli
    127.0.0.1:6379> keys *
    1) "key2"
    2) "key3"
    3) "key1"
    127.0.0.1:6379> exit

关闭redis,把redis下的rdb文件剪切到其他地方去/root下,然后再启动
    [root@#localhost redis]# bin/redis-cli shutdown
    [root@#localhost redis]# ps -ef | grep -i redis
    root       7377   7281  0 03:03 pts/0    00:00:00 grep --color=auto -i redis
    [root@#localhost redis]# ll
    总用量 52
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root   114 2月  28 03:03 dump.rdb
    -rw-r--r--. 1 root root 46697 2月  27 05:03 redis.conf
    [root@#localhost redis]# mv dump.rdb /root/
    [root@#localhost redis]# ll
    总用量 48
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root 46697 2月  27 05:03 redis.conf
    [root@#localhost redis]# ll /root/
    总用量 1524
    -rw-------. 1 root root    1259 2月  21 06:31 anaconda-ks.cfg
    -rw-r--r--. 1 root root     114 2月  28 03:03 dump.rdb
    drwxrwxr-x. 6 root root    4096 5月  17 2017 redis-3.2.9
    -rw-r--r--. 1 root root 1547695 5月  17 2017 redis-3.2.9.tar.gz
    [root@#localhost redis]# bin/redis-server redis.conf
    [root@#localhost redis]# bin/redis-cli
    127.0.0.1:6379> keys *
    (empty list or set)

关闭redis,恢复数据就把/root下的rdb文件拷贝回来,再重启redis
    [root@#localhost redis]# ps -ef | grep -i redis
    root       7383      1  0 03:04 ?        00:00:00 bin/redis-server *:6379
    root       7392   7281  0 03:06 pts/0    00:00:00 grep --color=auto -i redis
    [root@#localhost redis]# bin/redis-cli shutdown
    [root@#localhost redis]# cp /root/dump.rdb /usr/local/redis/
    cp:是否覆盖"/usr/local/redis/dump.rdb"? y
    [root@#localhost redis]# bin/redis-server redis.conf
    [root@#localhost redis]# bin/redis-cli
    127.0.0.1:6379> keys *
    1) "key2"
    2) "key3"
    3) "key1"
    数据恢复成功!


3. Redis的持久化之AOF方式

AOF方式:将以日志,记录每一个操作
    优势:安全性相对RDB方式高很多;
    劣势:效率相对RDB方式低很多;
修改配置文件
    [root@#localhost redis]# vi redis.conf
        appendonly no改为yes,默认关闭aof方式,yes是开启
        appendfilename "appendonly.aof" 默认的aof文件名
        三种同步策略:修改成always
        appendfsync always 只要发生修改,立即同步(推荐实用,安全性最高)
        # appendfsync everysec 每秒同步一次
        # appendfsync no 不同步
    保存退出
启动redis,确保keys是空
    [root@#localhost redis]# bin/redis-server redis.conf
    [root@#localhost redis]# bin/redis-cli
    [root@#localhost redis]# ll
    总用量 56
    -rw-r--r--. 1 root root   131 2月  28 03:33 appendonly.aof
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root   123 2月  28 03:33 dump.rdb
    -rw-r--r--. 1 root root 46698 2月  28 03:30 redis.conf
    [root@#localhost redis]# rm -rf dump.rdb
    [root@#localhost redis]# rm -rf appendonly.aof
    127.0.0.1:6379> keys *
    (empty list or set)

重新启动redis,增加测试用keys
    [root@#localhost redis]# bin/redis-cli shutdown
    [root@#localhost redis]# ps -ef | grep -i redis
    root       7454   7281  0 03:25 pts/0    00:00:00 grep --color=auto -i redis
    [root@#localhost redis]# bin/redis-server redis.conf
    [root@#localhost redis]# bin/redis-cli
    127.0.0.1:6379> keys *
    (empty list or set)
    127.0.0.1:6379> quit
    [root@#localhost redis]# ll
    总用量 48
    -rw-r--r--. 1 root root     0 2月  28 03:35 appendonly.aof
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root 46698 2月  28 03:30 redis.conf
    127.0.0.1:6379> set name1 zhangsan
    OK
    127.0.0.1:6379> set name2 lisi
    OK
    127.0.0.1:6379> set name3 wangwu
    OK
    127.0.0.1:6379> shutdown nosave
    not connected> exit
    [root@#localhost redis]# ll
    总用量 52
    -rw-r--r--. 1 root root   131 2月  28 03:41 appendonly.aof
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root 46698 2月  28 03:30 redis.conf

把aof文件剪切到/root/,重启没有keys
    [root@#localhost redis]# mv appendonly.aof /root/
    [root@#localhost redis]# ll
    总用量 48
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root 46698 2月  28 03:30 redis.conf
    [root@#localhost redis]# bin/redis-server redis.conf
    [root@#localhost redis]# bin/redis-cli
    127.0.0.1:6379> keys *
    (empty list or set)

将aof复制回来
    [root@#localhost redis]# cp /root/appendonly.aof /usr/local/redis/
    cp:是否覆盖"/usr/local/redis/appendonly.aof"? y
    [root@#localhost redis]# ll
    总用量 52
    -rw-r--r--. 1 root root   131 2月  28 03:43 appendonly.aof
    drwxr-xr-x. 2 root root   134 2月  27 03:45 bin
    -rw-r--r--. 1 root root 46698 2月  28 03:30 redis.conf
    [root@#localhost redis]# bin/redis-cli shutdown
    [root@#localhost redis]# ps -ef | grep -i redis
    root       7533   7281  0 03:45 pts/0    00:00:00 grep --color=auto -i redis
    [root@#localhost redis]# bin/redis-server redis.conf
    [root@#localhost redis]# bin/redis-cli
    127.0.0.1:6379> keys *
    1) "name3"
    2) "name1"
    3) "name2"
备份恢复成功!
分享到:
评论

相关推荐

    Redis 持久化之RDB和AOF.doc

    Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示...

    尚硅谷——Redis之RDB和AOF持久化

    RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。

    Redis持久化RDB和AOF区别详解

    RDB是Redis内存到硬盘的快照,用于redis持久化,创建RDB二进制文件,将存储在内存中的数据,持久化的放到硬盘中,当我们需要这些数据的时候,启动载入RDB文件,数据将会被存入内存中,其实RDB就是一种快照的方式持久...

    Redis持久化 - RDB和AOF

    Redis持久化 - RDB和AOF

    Redis两种持久化方案RDB和AOF详解

    本文主要针对Redis 有两种持久化方案RDB和AOF做了详细的分析,希望我们整理的内容能够帮助大家对这个两种方案有更加深入的理解。 Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果...

    Redis的持久化方案.pdf(两种持久化方案:RDB 和 AOF,共15页)

    两种持久化方案:RDB 和 AOF 包含:两钟方案各自的优缺点、如何选择持久化方式、RDB 持久化设置、AOF持久化设置、AOF与RDB之间的相互影响、备份Redis 数据、灾难恢复、Redis 的数据回写机制、灾难恢复模拟

    部署安装Redis及RDB、AOF持久化验证.md

    部署安装Redis及RDB、AOF持久化验证.md

    redis主从复制 RDB/AOF持久化 数据类型-附件资源

    redis主从复制 RDB/AOF持久化 数据类型-附件资源

    Redis的安装/连接/Redis中的五种数据累心的基本操作/Redis的持久化方案-Rdb+AOF

    java学习-Redis的安装/连接/Redis中的五种数据累心的基本操作/Redis的持久化方案-Rdb+AOF

    【大厂面试】Redis 持久化AOF、RDB概念总结

    AOF 持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以 redis 协议追加保存每次写的操作到文件末尾,redis 还能对 AOF 文件进行后台重写,使得 AOF 文件的体积...

    09.图解分析redis的RDB和AOF两种持久化机制的工作原理.zip

    很全面的大数据公开课,课件+视频+代码

    redis持久化和内存策略1

    }} Redis持久化策略说明Redis中的数据都在内存中,如果断电宕机则内存数据丢失.其中数据应该持久化保存.不允许丢失.持久化策略:RDB模式AOF模式Re

    Redis入门教程.docx

    17.聊聊redis持久化 – 如何选择RDB和AOF 18.聊聊主从 – 用法 19.聊聊主从 – 同步原理 20.聊聊redis的事务处理 21.教你看懂redis配置 – 简介 22.教你看懂redis配置 -通用 23.教你看懂redis配置 – 快照 24.教你看...

    Redis持久化一一RDB

    Redis的持久化存储提供两种方式:RDB与AOF。RDB是默认配置。默认是关闭AOF模式的,AOF需要手动开启 RDB(Redis DataBase):在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时...

    redis持久化

    目录 介绍 rdb rdb原理 rdb触发条件 ...rdb实现持久化主要是将当前进程中的数据生成快照保存到硬盘上,在重启的时候读取硬盘上的数据(如果同时配置了aof,将会先执行aof策略,因为aof的实时性比较高

    Redis高级特性解析:持久化、主从复制与哨兵机制全面探讨

    首先,我们探讨了Redis的两种持久化方式:RDB和AOF。RDB通过定期生成数据快照来实现数据的持久化,而AOF则记录每个写操作,提供更强的数据安全性。然而,AOF由于记录每次操作,可能会导致文件体积较大,因此Redis...

    Redis的持久化方案.docx

    Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示...

Global site tag (gtag.js) - Google Analytics