Redis的数据都是存储在内存中,为了数据的永久保存,需要把数据同步到硬盘上,这个过程就叫做持久化.
Redis的持久化存在有两种方式: rdb方式,aof方式,这两种方式可以单独使用,也可以综合使用.
- rdb持久化方式: 是在指定的时间间隔写入硬盘
- aof持久化方式:是以日志,记录每一个操作,服务器启动后,根据日志来构建数据.
RDB方式
RDB方式是redis默认支持的,它的优劣如下:
优势: 只有一个文件,时间间隔的数据,可以归档为一个文件,方便压缩和转移
劣势: 如果宕机,数据损失比较大,因为它是每隔一个时间段进行持久化操作的,也就是积累的数据比较多,一旦宕机,就彻底懵逼了.
1、查看redis的配置文件:redis.windows.conf文件
文件名:redis.windows.conf
2、找到如下位置:
# save "" save 900 1 save 300 10 save 60 10000
这是就是RDF的持久化策略:
- 1)save 900 1 表示每900秒内至少有一个key发生变化,就持久化
- 2)save 300 10 表示每300秒内至少有10个key发生变化,就持久化
- 3)save 60 10000 表示每60秒至少有10000个key发生变化,就持久化
-
save " " 关闭rdf持久化
3、再往下拉,找到如下位置:
dbfilename配置表示持久化的文件是 dump.rdb
# The filename where to dump the DB dbfilename "dump.rdb"
4、继续往下拉,找到如下位置:dir ./ 表示文件存储的路径就是当前目录,也就是在redis安装包下
# Note that you must specify a directory here, not a file name. dir ./
备份数据:我们只需要把dump.rdb文件拷贝到另外一个位置,
还原数据:只需要把dump.rdb文件拷贝到redis的安装目录下就可以了,重启redis就可以了。
AOF方式
AOF方式,以日志记录每一个操作。Redis可以通过日志去还原数据。
优势: 安全性相对RDB方式高很多,它记录了每一个操作
劣势:效率相对于RDB方式低很多。
Redis默认是关闭AOF方式的。
1、查看redis的配置文件
appendonly no (no:表示关闭AOF,yes:表示开启) # The name of the append only file (default: "appendonly.aof") appendfilename "appendonly.aof" (aop方式的日志文件)
2、再往下拉
# If unsure, use "everysec". # appendfsync always appendfsync everysec # appendfsync no
aof的三种同步策略:
- always 表示只要发送修改,立即同步(推荐使用,安全性最高)
- everysec 表示每秒同步一次
- no 表示不同步
备份: 我们只需要把appendonly.aof文件拷贝到其他存储设备中,
还原:我们只需要把appendonly.aof文件拷贝到redis目录下