Redis之-aof恢复

aof恢复简讲过程:

[[email protected] redis]# pkill -9 redis
[[email protected] ~]# cd /var/dir
[[email protected] ~]# rm -rf *
清除掉现有环境备份文件;然后启动服务器进程,添加新数据

[[email protected] redis]# ./bin/redis-server ./redis.conf
[[email protected] redis]# ./bin/redis-server ./redis6380.conf
[[email protected] redis]# ./bin/redis-server ./redis6381.conf
[[email protected] redis]# ./bin/redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set site www.baidu.com
OK
127.0.0.1:6379> set name yjf
OK
127.0.0.1:6379> set addr bj
OK
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> get name
(nil)

此时一定要先停止服务,避免其他人有写入操作,重写aof。况且aof记录着也有flushall操作。
[[email protected] dir]# more laoyang-appendonly.aof
2
$6
SELECT
$1
0
3
$3
set
$4
site
$13
www.baidu.com
3
$3
set
$4
name
$3
yjf
3
$3
set
$4
addr
$2
bj
*1
$8
flushall

127.0.0.1:6379> shutdown nosave ---shutdown 操作不记录日志
not connected>

然后编辑一下aof生成文件。将最后危险操作flushall给dd掉。--注意记录的格式,一般是*开始,命令结尾;

[[email protected] dir]# vim laoyang-appendonly.aof
删除下面三行,保存退出
*1
$8
flushall

然后重启一下服务,登陆查询,如果么有,退出后,再次登陆查询
[[email protected] redis]# ./bin/redis-server ./redis.conf
[[email protected] redis]# ./bin/redis-cli
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> exit
[[email protected] redis]# ./bin/redis-cli
127.0.0.1:6379> get name
yjf

检查rdb文件
[[email protected] redis]# ./bin/redis-check-rdb /var/dir/dump6380.rdb
[offset 0] Checking RDB file /var/dir/dump6380.rdb
[offset 27] AUX FIELD redis-ver = ‘3.2.13‘
[offset 41] AUX FIELD redis-bits = ‘64‘
[offset 53] AUX FIELD ctime = ‘1561537890‘
[offset 68] AUX FIELD used-mem = ‘880976‘
[offset 77] Checksum OK
[offset 77] \o/ RDB looks OK! \o/
[info] 0 keys read
[info] 0 expires
[info] 0 already expired

原文地址:https://blog.51cto.com/yangjunfeng/2414275

时间: 2024-10-14 11:44:53

Redis之-aof恢复的相关文章

15 redis 之 aof恢复与rdb服务器间迁移

三:常见的问题 BGREWRITEAOF 后台进程重写AOF BGSAVE 后台保存rdb快照 SAVE 保存rdb快照 LASTSAVE 上次保存时间 Slaveof master-Host port , 把当前实例设为master的slave Flushall 清空所有库所有键 Flushdb 清空当前库所有键 Showdown [save/nosave] 注: 如果不小心运行了flushall, 立即 shutdown nosave ,关闭服务器 然后 手工编辑aof文件, 去掉文件中的

aof恢复与rdb服务器间迁移——redis

1. aof恢复与rdb服务器间迁移: 1.1. Aof恢复: 如果不小心执行了flushdb或flushall了怎么办? (1)立马执行命令:shutdown nosave 关闭服务器,为了防止其他人正在操作服务器触发重写aof,如果aof重写了,彻底没救了 (2)修改aof文件,删除最后一行的命令:flushdb (或flushall) (3)再次启动服务器,查看数据恢复 操作流程如下: 127.0.0.1:6379> set hello word OK 127.0.0.1:6379> f

Redis的AOF功能

引言:  Redis是基于内存的数据库,同时也提供了若干持久化的方案,允许用户把内存中的数据,写入本地文件系统,以备下次重启或者当机之后继续使用.本文将描述如何基于Redis来设置AOF功能 什么是Redis的AOF? AOF是AppendOnly File的缩写,是Redis系统提供了一种记录Redis操作的持久化方案,在AOF生成的文件中,将忠实记录发生在Redis的操作,从而达到在Redis服务器重启或者当机之后,继续恢复之前数据状态的机制. 以下我们来简要看看如何在Redis中使用AOF

redis 持久化 AOF RDB

Redis的AOF持久化策略是将发送到redis服务端的每一条命令都记录下来,并且保存到硬盘中的AOF文件中,类似打日志文件,来一条命令就记录一条. AOF设置 AOF文件的位置和RDB文件的位置相同,都是通过dir参数设置,默认的文件名是appendonly.aof,可以通过appendfilename参数来修改. AOF测试 当客户端向服务器发送一些redis命令时,Redis会将所执行的命令记录到aof文件中,如下所示: 当redis服务器重启后,会将执行该aof文件,达到数据恢复的目的.

Redis持久化——AOF(二)

核心知识点: 1.AOF:以独立日志的方式记录写命令,重启时再执行命令.与RDB不同的是解决数据持久化的实时性,可以记录所有写操作. 2.AOF工作流程:写入命令.文件同步.文件重写.文件加载. 3.命令写入 a.将命令以文本协议格式保存在缓存中. b.为什么使用文本协议格式?兼容性.避免二次开销.可读性. c.为什么写入到缓存?这样不会受制于磁盘的IO性能 4.文件同步:从内存同步到文件中,有三种机制,使用的系统命令是write或fsync. (1).write会触发写延迟,依赖系统的调度机制

第五章:Redis持久化-AOF持久化

AOF持久化 AOF全称append only file持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的: AOF主要作用是解决了数据实时持久化的问题: 使用AOF 开始AOF需要设置appendonly yes,默认不开启. AOF文件名通过appendonlyname配置,默认文件名为appendonly.aof: AOF工作流程操作:命令写入(append).文件同步(sync).文件重写(rewrite).重启加载(reload): 所有写入命

[Redis] redis数据备份恢复与持久化

数据库备份,使用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 Backgrou

Redis的AOF与RDB

AOF持久化的实现 AOF持久化的实现可以分为命令追加.文件写入和文件同步三个步骤. struct redisServer { sds aof_buf;/* AOF buffer, written before entering the event loop */ } AOF持久化功能处于打开状态时,服务器在执行完一个写命令之后,会以协议格式将被执行的写命令追加到服务器状态的aof_buf缓冲区的末尾. AOF重写 Redis提供了AOF重写功能:Redis服务器可以创建一个新的AOF文件来替代

redis数据备份恢复SAVE

#(1)redis数据备份SAVE(BGSAVE也可以备份,并且后台执行备份) 127.0.0.1:6379> SAVE     OK #备份完成后会在安装目录下(默认/var/lib/redis/)创建dump.rdb文件 #获取redis的安装目录 127.0.0.1:6379> CONFIG GET dir     1) "dir"     2) "/var/lib/redis" ll /var/lib/redis/dump.rdb      -r