`

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 则记录每次写操作的日志。 RDB 持久化在特定条件下将...

    Redis持久化RDB和AOF区别详解

    为了确保数据在服务器重启或异常情况下的安全,Redis提供了两种主要的持久化机制:RDB(Redis Database Persistence,即快照)和AOF(Append Only File,追加日志)。下面将详细解释这两种持久化方式的区别。 **RDB...

    Redis持久化 - RDB和AOF

    “Redis持久化 - RDB和AOF” Redis持久化是指将数据库中的数据保存到永久存储设备中,以避免数据丢失。Redis提供了两种持久化方式:RDB(快照方式)和AOF(写日志方式)。 RDB(Redis Database)是一种快照方式的...

    Redis持久化策略与AOF机制详解

    内容概要:本文详细介绍了Redis的持久化策略,特别是RDB(Redis Database Backup)和AOF(Append Only File)两种主要的持久化方法。RDB通过在某个时间点创建数据集的快照来实现数据持久化,其优点包括数据恢复快、...

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

    为了在系统崩溃或意外停机后能够恢复数据,Redis提供了两种持久化机制:RDB(Redis Database Backup)和AOF(Append Only File)。这两种机制各有优缺点,可以根据实际需求进行选择或结合使用。 **RDB持久化**: ...

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

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

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

    在Redis中同时启用AOF和RDB是可以的。如果两者都启用,当Redis重启时,它会优先使用AOF文件来重建数据集,因为AOF通常能提供更完整的数据恢复。然而,RDB文件仍然有价值,因为它可以作为数据备份。 #### 备份Redis ...

    Redis的持久化方案

    对于Redis持久化,用户可以选择使用单一的RDB或AOF,也可以两者结合使用。如果两种持久化机制都被开启,则在Redis重启时,会优先使用AOF文件进行数据恢复,因为它能够保证数据的完整性。不过,当AOF日志过大时,...

    Redis 持久化机制及其实现方案详解

    适合人群:具有基础Redis知识的研发人员,尤其是对Redis持久化机制有深入了解需求的后端开发工程师。 使用场景及目标:①掌握Redis持久化机制的实现细节,提升Redis数据管理能力;②根据业务需求选择合适的持久化...

    Redis持久化、主从与哨兵架构详解(1)

    Redis持久化、主从与哨兵架构详解 Redis持久化是指将Redis中的数据保存到磁盘中,以便在Redis服务器...Redis持久化是 Redis 数据库的重要组件,用户需要根据实际情况选择合适的持久化方式以确保数据安全性和恢复速度。

    redis持久化方式

    ### Redis持久化方式详解 Redis 是一款高性能的键值存储系统,因其卓越的读写速度、丰富的数据结构以及灵活的应用场景而备受青睐。为了保证数据的安全性和持久性,Redis 提供了两种主要的持久化机制:RDB 快照...

    解密Redis持久化

    本文将深入解析Redis的持久化机制,主要包括RDB快照和AOF日志。 首先,理解数据持久化的概念至关重要。简单来说,持久化就是将内存中的数据保存到非易失性存储设备,如硬盘,以便在系统重启后仍能访问这些数据。在...

    06_redis 持久化.pdf

    Redis持久化是指利用永久性存储介质将Redis内存中的数据保存到磁盘上的过程,以防止数据的意外丢失,确保数据的安全性。其主要目的就是在Redis服务出现意外情况下,能够通过持久化存储的数据进行恢复,保证业务的...

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

    它提供了两种持久化方案:RDB(Redis DataBase)和AOF(Append Only File)。这两种方法各有特点,适用于不同的场景。 **RDB持久化**是Redis默认的持久化方式。RDB会在特定条件下自动创建数据快照,保存到磁盘上,...

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

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

    Redis持久化机制思维导图完整版

    RDB持久化RDB(Redis DataBase)持久化是一种基于快照的持久化方式。在指定的时间间隔内,如果满足一定条件(如某段时间内发生的写操作次数),Redis会生成一个包含当前内存数据的RDB文件。这个RDB文件可以用于数据...

    02-Redis持久化、主从与哨兵架构详解.zip

    Redis提供了两种主要的持久化方式:RDB(Redis Database Backup)和AOF(Append Only File)。RDB是通过定时全量备份的方式保存数据,它在特定时间点生成一个数据库的快照,生成的文件体积小,恢复速度快,适合灾难...

    Redis windows 测试redis持久化功能1

    接下来,我们关注 Redis 的持久化功能,主要有两种方式:RDB(Redis Database Backup)和 AOF(Append Only File)。 1. RDB 持久化:这是一种定期快照的方式,通过 `save` 配置项来定义触发保存的条件。例如: ``...

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

    Redis还可以结合RDB和AOF两种方式,实现更灵活的持久化策略,以平衡数据安全和性能需求。 【NoSQL数据库的优势与应用场景】 NoSQL 数据库相比关系型数据库,具有以下优势: 1. 非结构化数据处理:NoSQL 支持处理...

Global site tag (gtag.js) - Google Analytics