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

持久化操作,两种方式:rdb方式、aof方式,可以单独使用或者结合使用。

使用方法:

 rdb持久化方法:在指定的时间间隔写入硬盘

aof方式:将以日志,记录每一个操作,服务器启动后就构建数据库。

配置可以禁用 持久化功能。

也可以同时使用两种方式。

可以通过持久化达到数据的备份和转移

现在就来介绍一种方式  rdb方式

redis持久化之rdb方式和aof方式_数据

这里save 900 1 表示 每900秒内至少有1个kery发生变化,就持久化

save 300 10表示 每300秒内至少有10个key发生变化,就持久化

save 60 10000表示 每60秒内至少有10000个key发生变化,就持久化

redis持久化之rdb方式和aof方式_持久化_02

这里有个dbfilename配置 是 保存的持久化的文件名 默认是dump.rdb

redis持久化之rdb方式和aof方式_redis_03

dir ./ 表示文件存储路径是当前路径

测试备份/恢复数据

进入redis客户端,查看数据

127.0.0.1:6379> keys *
1) "wxf"
2) "name"
3) "ex"
127.0.0.1:6379> get name
"1"
127.0.0.1:6379> get wxf
"\xe6\x88\x91\xe5\xbe\x88\xe5\xbc\xba"

备份数据持久化文件

cp dump.rdb /usr/local/java

关闭服务删除rdb文件

rm -rf dump.rdb

连接redis客户端

127.0.0.1:6379> keys *
(empty list or set)

没数据了,继续关闭服务,把copy的文件放回来

cp /usr/local/java/dump.rdb /usr/local/redis

启动服务

[root@izuf6400c3ysl2hbzveiciz redis]# ./bin/redis-server ./redis.conf
[root@izuf6400c3ysl2hbzveiciz redis]#  ./bin/redis-cli
127.0.0.1:6379> keys *
1) "ex"
2) "name"
3) "wxf"
127.0.0.1:6379> get name
"1"

完成数据恢复。

第二种方式介绍 aof方式

AOF方式:将以日志,记录每一个操作

优势:安全性相对RDB方式高很多;

劣势:效率相对RDB方式低很多

 

 

编辑redis.config

redis持久化之rdb方式和aof方式_持久化_04

appendonly no默认关闭aof方式 我们修改成yes 就开启

下面那个是默认的aof文件名

redis持久化之rdb方式和aof方式_数据_05

这里是三种同步策略:

always 是 只要发生修改,立即同步 (推荐实用 安全性最高)

everysec 是 每秒同步一次

no是不同步 

 

我们修改成always

恢复数据的方式和rdb方式一致,拷贝文件到相应目录即可。