Redis 提供了多种数据备份和恢复方式,本文将介绍其中的几种方式,包括 RDB 备份、AOF 备份以及 Redis Cluster 集群备份。 RDB 备份RDB 备份是 Redis 的一种快照备份方式,它可以将 Redis 的数据保存到一个二进制文件中。 RDB 备份是 Redis 官方推荐的备份方式之一,它具有备份速度快、文件大小小、恢复速度快等优点。手动备份可以使用 Redis 的 BGSAVE 命令来手动执行 RDB 备份。 备份文件的命名规则为 dump.rdb,如果想要更改备份文件的存储路径和名称,可以在 Redis 的配置文件中进行配置。自动备份可以通过配置 Redis 的定时器来实现自动 RDB 备份。 如果备份频率过高,可能会影响 Redis 的性能,造成请求延迟和丢失;如果备份频率过低,可能会导致数据丢失。可以通过修改 Redis 的配置文件来配置自动备份策略。
发表评论 4,383 A+ 所属分类:数据库 说明:默认rdb方式保存,redis支持主从和哨兵等,但是在某些情况下我们会单机跑,所以有时候我们就会需要设计到备份恢复 环境:原始redis :192.168.1.200 新redis:192.168.1.201 原始redis:192.168.1.200,查看导出备份地址以及备份 Shell [root@redis-master redis数据 OK (1.06s) 127.0.0.1:6379> CONFIG GET dir #查看备份文件路径,可以看到是root目录 1) "dir" 2) "/root" 127.0.0.1 这就是备份下来的文件 1234567891011121314 [root@redis-master ~]#redis-cli 127.0.0.1:6379> auth 123456 # r-- 1 root root 24M Sep 20 15:11 dump.rdb 这就是备份下来的文件 新redis:192.168.1.201搭建和恢复: Shell [root@redis-backup
本文介绍 Redis 持久化。 RDB 该方式为默认方式。 RDB 方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时 Redis 会自动将内存中的所有数据进行快照并存储在硬盘上。 也可以手动执行 SAVE 命令 redis 127.0.0.1:6379> SAVE # 该命令将在 redis 备份目录中创建dump.rdb文件。 可以使当前数据库停止接收其他数据库的同步,转成主数据库 恢复 如果需要恢复数据,只需将备份文件 dump.rdb 或 appendonly.aof 移动到启动配置文件中设置的 dir 目录并启动服务即可 注意: 当启动配置文件启用 appendonly 时,redis 默认寻找 appendonly.aof 恢复数据,如果没有 aof 文件,则 redis 数据为空。
文章目录 概述 Redis持久化的默认配置 Redis两种持久化方式的配置 RDB 快照的原理及配置 AOF追加文件的配置 概述 在 Redis 中存在两种方式的备份 : RDB 快照(snapshotting ), 它是备份当前瞬间 Redis在内存中的数据记录。 ---- 对于RDB 快照备份而言, 如果当前 Redis 的数据量大,备份可能造成 Redis 卡顿,但是恢复重启是 比较快速的 对于 AOF 备份而言,它只是追加写入命令,所以备份一般不会造成 Redis 卡顿 , 但是恢复重启要执行更多 的命令,备份文件可能也很大 , 这是要注意的地方 在 Redis 中允许使用其中的一种、同时使用两种,或者两种都不用,所以具体使用何种方式进行备份和持久化是用户可以通过配置决定的 如果 appendonly 配置为 yes,则以 AOF 方式备份 Redis 数据,那么此时 Redis 会按照配置,在特定的时候执行追加命令,用以备份数据。
1、备份 Redis SAVE 命令用于创建当前数据库的备份。 redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文件。 2、恢复 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。 获取 redis 目录可以使用 CONFIG 命令,如下所示: redis 127.0.0.1:6379> CONFIG GET dir 1) "dir" 2) "/usr/local/redis/bin " 以上命令 CONFIG GET dir 输出的 redis 安装目录为 /usr/local/redis/bin。 3、其他方法:Bgsave 创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。 127.0.0.1:6379> BGSAVE Background saving started
redis数据备份与恢复 1.启动redis 进入redis目录 redis-cli 2.数据备份 redis 127.0.0.1:6379> SAVE 该命令将在 redis 备份目录中创建dump.rdb 3.恢复数据 1、获取备份目录 redis 127.0.0.1:6379> CONFIG GET dir 1) "dir" 2) "/usr/local/redis/bin" 以上命令 CONFIG GET dir 输出的 redis 备份目录为 /usr/local/redis/bin。 2、停止redis服务 3、拷贝备份文件到 /usr/local/redis/bin目录下 4、重新启动redis服务 redis作为windows服务启动方式 redis-server --service-install redis.windows.conf 启动服务:redis-server --service-start 停止服务:redis-server --service-stop (adsbygoogle
redis 数据 的备份和迁移 1.备份/拷贝/重启 利用 redis 的持久化功能,redis 重启的时候,会自动从硬盘的持久化文件中读取数据再恢复到内存中。 利用这里原理,把redis2 的持久化备份 替换成redis1 的,然后重启redis2,它就会从硬盘持久化文件恢复到内存,这样一来 redis2 就跟 redis1 一样了 要使用这个方案,就必须了解 redis 的持久化,redis 的持久化方案有2种,rdb 模式和 aof 模式: rdb 保存整个redis的数据 aof 保存成 redis可以执行的命令 rdb覆盖过去之后,新的redis数据就没了 而aof因为是保存的命令,只是在新的redis`上重新执行了一遍,所以不会覆盖 新 redis 上的数据。 简单来说如果需要保留新 redis 的数据,可以使用aof。 redis的数据目录 看到 appendonly.aof 文件 目标redis $ redis-cli -h aliyun_redis_instance_ip -p 6379 -a password
确保redis版本在2.2以上 [root@pyyuc /data 22:23:30]#redis-server -v Redis server v=4.0.10 sha=00000000:0 malloc =jemalloc-4.0.3 bits=64 build=64cb6afcf41664c 本文在redis4.0中,通过config set命令,达到不重启redis服务,从RDB持久化切换为AOF 实验环境准备 redis.conf服务端配置文件 daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 dbfilename 服务端 redis-server redis.conf 登录redis-cli插入数据,手动持久化 127.0.0.1:6379> set name chaoge OK 127.0.0.1:6379> 备份这个rdb文件,保证数据安全 [root@pyyuc /data/6379 22:35:38]#cp dbmp.rdb /opt/ 执行命令,开启AOF持久化 127.0.0.1:6379> CONFIG
Redis SAVE 命令用于创建当前数据库的备份。 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建 ---- 恢复数据 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。 获取 redis 目录可以使用 CONFIG 命令,如下所示: redis 127.0.0.1:6379> CONFIG GET dir 1) "dir" 2) "/usr/local/redis/bin ---- Bgsave 创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。
Redis 数据备份与恢复 Redis SAVE命令用于创建当前数据库的备份。 语法 redis Save命令基本语法如下: 127.0.0.1:6379> save 实例 [root@localhost ~]# redis-cli 127.0.0.1:6379> save OK 该命令将在redis安装目录中创建dump.rdb文件。 恢复数据 如果需要恢复数据,只需将备份文件(dump.rdb)移动到redis数据目录并启动服务即可。 dir输出的redis安装目录为/data/redis Bgsave 创建redis备份文件也可以使用命令BGSAVE,该命令在后台执行。
但是问题又来了,redis升级的时候,数据需要备份,在做多环境上线的时候,基础数据还需要迁移。因此,不仅仅需要全量的备份能力,还需要增量的备份能力,做跨环境的数据迁移。 因此,最近我研究了几款号称有能力做数据备份和导入导出的redis客户端: 1. redis-cli: 官方redis命令行客户端,优点是官方软件,缺点比较明显,就是没有图形化界面,所以用户群体是熟悉redis 2. yunedit-redis: 图形化管理客户端,这个是我最终选择的方案,因为它用户体验比较好,包括redis的数据增删查改和数据备份功能,都提供了可视化界面。 全量导出适合于整库备份、自定义增量导出适合于数据迁移或上线数据初始化。 3. 最终,我推荐做redis数据备份选择yunedit-redis,因为我们的运维人员大部分都不是redis专职运维人员,对redis的命令也不是很熟悉。
随着redis使用的普及,redis的备份和恢复也是非常重要。redis的备份有多种情况,有防止数据丢失的备份,也有系统迁移的数据备份和恢复,还有系统升级前的备份,用于回滚等等。目的各不相同。 能够适用上面不同的场景,应该使用客户端备份工具,像数据迁移,比如一个云迁移到另一个云,或者一个db迁移到同一个redis的另一个db这种场景,不是服务端备份整个rdb文件能解决的,可以使用yunedit-redis 这种客户端软件来做数据的备份或迁移。 下面整理下备份和恢复的教程:(1)使用yunedit-redis,连接上需要备份数据的redis,它是图形化管理的,如下图,yunedit-redis的左边是redis实例管理界面,可以添加多个redis 实例进行管理:(2)连接上redis实例后,选择其中一个有数据的db, 一般程序不设置db的话,默认是保存在db0, 在右侧可以查询这个db的key列表,如下图:(3)导出数据备份从上图可以看到,右侧界面有多个导出按钮有导出本
其实redis上线也同样是如此。而且在做一些危险操作之前,也是需要对redis的数据做备份。那么redis数据备份的客户端工具有哪些呢? 而且备份一般是在客户端完成才能方便。因此我是用yunedit-redis这款redis客户端来做,在备份领域,yunedit-redis应该算是redis客户端里稳定性和速度最好的,功能也是最齐全的。 下面来看看怎么备份和恢复:1、数据的备份(导出)如下图,导出的方式有四种,有导出全部DB、有导出单个DB,有导出选中项,还有自定义导出。 redis,点导入按钮:3、选择导入的策略如下图所示:4、最后选择要导入的db选择备份的文件后,会要求选择导入的db。 备份时选择的db,跟导入的db可以是不一样的,如下图:
一般也不会用这个 bgsave : 是开一个后台进程单独去同步数据到磁盘, 不影响redis的正常使用. 推荐用这个. 恢复的话就看2.1RDB备份与恢复吧 2. AOF : 是记录的操作, 即包含命令和键值,更完整一些,但恢复的时候是在伪终端重新执行一遍命令的,速度慢一些. 2.1 RDB自动备份与手动恢复 2.1.1 RDB备份/快照 其实RDB持久化更像是快照 , 因为备份的话是有2份一样的数据的(在内存中的数据是不包含的) 查看当前的自动备份策略: 127.0.0.1:6379> config get save 1) "save" 2) "900 1 300 所以做redis备份的时候,记得要定时把RDB文件拷贝一份到其它目录,其实还有AOF,也不用太紧张. 其实用AOF持久化的更多一些, 毕竟是把所有操作(get之类的没必要)都记录下来 2.2.1 AOF备份/持久化 因为AOF是记录操作的,那么文件会很大, 可以用BGREWRITEAOF来重建AOF
本文将详细介绍 Redis 的数据备份与恢复机制,包括 RDB 快照、AOF 日志、以及混合使用策略,并通过具体案例展示如何在实际环境中实施有效的数据保护措施。 Redis 数据备份方式 RDB 快照(Redis Database Backup) RDB 是 Redis 提供的一种快照式备份机制,它会在指定的时间点创建整个数据库的数据快照。 案例:定期自动备份 假设我们有一台生产环境的 Redis 服务器,需要每天凌晨执行一次完整的数据备份,可以采用以下策略: 在 Redis 配置文件中设置自动快照策略: save "" 使用 cron 定时任务在凌晨执行 案例:灾难恢复演练 假设我们的主 Redis 实例发生硬件故障,需要从备份中恢复数据。 结论 在设计 Redis 的数据备份与恢复策略时,应综合考虑业务需求、数据安全性和系统性能。RDB 快照适合定期全量数据备份,而 AOF 日志则提供了更细粒度的数据保护。
数据库备份,使用save命令,将会在redis的安装目录中生成dump.rdb 例如:在我的目录下 redis/src/dump.rdb 使用命令config get dir,获取当前redis的安装目录 例如: 127.0.0.1:6379> config get dir 1) "dir" 2) "/tsh/redis-3.0.0/src" 使用命令bgsave,在后台执行备份操作 例如: 127.0.0.1 :6379> bgsave Background saving started 恢复数据,只需要把dump.rdb这个文件放到redis的安装目录下,启动服务,数据就恢复了 经过我的测试,没有执行save 命令,当手动关闭redis-server的时候,dump.rdb文件会自动创建,再开启服务,客户端查询数据也没有丢失 redis的持久化 Snapshotting(快照) 修改配置文件,在指定时间内修改的键个数大于设定的值执行 /tsh/redis-3.0.0/redis.conf append only file(AOF模式) 修改配置文件redis.conf,appendonly yes 重启服务,一定有加上配置文件的参数
Redis操作是基于内存的,但是它同时又是一个数据库,那么庞大的数据量不可能全部存在内存中。就需要Redis定时将内存中的数据持久化到硬盘上。 下面我们就讲讲Redis的两种持久化方式 Redis持久化两种方式 ? 将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可,redis就会自动加载文件数据至内存了。 获取 redis 的安装目录可以使用 config get dir 命令 RDB优势与劣势 优势 适合大规模的数据恢复 对数据完整性和一致性要求不高 劣势 在一定间隔时间做一次备份,所以如果redis意外 正常恢复到内存中 ❝将有数据的aof文件复制一份保存到对应目录,目录路径可以通过config get dir命令获取,重新启动Redis就可以了 ❞ 异常恢复文件到内存中 ❝备份异常AOF文件,使用命令对文件进行修复
Redis的读写性能俱佳,但由于是内存数据库,如果没有提前备份,Redis数据是掉电即失的。 持久化 备份文件的名称 dbfilename dump.rdb 备份文件存放路径 dir /var/lib/redis 当前数据库备份 Redis的SAVE命令和BGSAVE命令用于将当前数据库备份 ) 恢复 将备份的RDB文件,cp到要恢复的redis指定目录,重启Redis即可自动读取持久化文件,自动恢复数据 备份的RDB文件: 通过命令redis 127.0.0.1:6379> CONFIG GET dir查看执行SAVE命令之后,redis默认存放备份文件的目录;通过命令redis 127.0.0.1:6379> CONFIG GET dbfilename查看备份RDB文件的文件名称; root RDB文件和AOF文件时,还原数据时AOF文件的优先级是高于RDB文件的,所以优先通过AOF文件还原数据 二者优缺点 RDB持久化 优点: RDB方式备份,整个Redis数据库最终备份成一个文件,这对于文件备份而言是完美的
Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份。 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建 恢复数据 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。 获取 redis 目录可以使用 CONFIG 命令,如下所示: redis 127.0.0.1:6379> CONFIG GET dir 1) "dir" 2) "/usr/local/redis/bin Bgsave 创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。 实例 127.0.0.1:6379> BGSAVE Background saving started
在之前,我们已经了解了Redis的基本数据结构和布隆过滤器,今天来带大家了解一下Redis中的备份与恢复策略。 优点1、性能较高:RDB文件是一个紧凑且压缩的二进制文件,加载速度快,适合用于备份和恢复大量数据。2、数据一致性:RDB策略生成的文件包含了Redis在某个时间点上的完整数据集,可以确保数据的一致性。 3、适用于灾难恢复:RDB文件可以方便地进行数据备份和迁移,适用于灾难恢复和数据迁移的场景。缺点1、数据丢失:由于RDB策略是定期执行的,如果Redis发生故障,最后一次快照生成后的数据可能会丢失。 AOFAOF(Append-Only File)是Redis中的一种持久化策略,用于将Redis的操作命令以日志的形式追加到文件中。AOF策略通过记录Redis的写操作命令,实现了数据的持久化和恢复。 当客户端发送写操作命令(例如SET、DEL等)给Redis时,Redis会将这些命令追加到AOF文件的末尾。Redis可以根据配置选择将AOF文件同步到磁盘的频率。