Redis持久化方式
Redis持久化是将数据从断电易失的内存上,保存到永久储存的设备上
一、方式一:RDB
1.保存真实数据;
2.将指定时间间隔内的内存数据以快照的方式,写入二进制文件(dump.rdb);
(1)定时快照:固定时间间隔,将数据存储至磁盘;
(2)定量快照:数据变化一定次数后,将数据存储至磁盘;3.默认文件:/val/lib/redis/dump.rdb;
实现方式
1.1 服务器执行客户端发送SAVE或BGSAVE命令(手动保存)
1. 127.0.0.1:6379> SAVE
注:此命令执行时,redis服务器将阻塞,无法处理客户端发送的命令请求,直至SAVE执行完之后
注:如果RDB文件存在,将会创建新的RDB文件代替
2. 127.0.0.1:6379> BGSAVE
注:此命令执行时,redis服务器会fork()一个子进程去处理,并不影响redis继续处理客户端发送的命令请求
1.2 设置配置文件(自动保存)
1.修改配置文件redis.conf
vim /安装目录/redis.conf (源码安装)
vim /etc/redis.conf (yum/apt-get安装)
2.修改配置文件redis.conf
save 900 1: 距上次生成RDB文件后,900s内至少有1个key发生改变时,自动支持BGSAVE(默认)
save 300 10: 距上次生成RDB文件后,300s内至少有10个key发生改变时,自动支持BGSAVE(默认)
save 60 10000: 距上次生成RDB文件后,60s内至少有10000个key发生改变时,自动支持BGSAVE(默认)
注:满足一个save,服务器就会自动执行BGSAVE
注:每次常见RDB文件后,服务器会自动重置时间计数器和次数计数器
二、方式二:AOF
1.当有修改数据库的命令被执行时;
2.以日志的文本形式记录服务器所处理的每一个写、删除操作,并不记录查询操作;
2.存储的是命令,不是真实数据
实现方式
1.修改配置文件redis.conf
vim /安装目录/redis.conf (源码安装)
vim /etc/redis.conf (yum/apt-get安装)
2.配置参数
持久化开启:appendonly yes # 将no改为yes
持久化开启:appendfilename "appendonly.aof"
持久化策略:appendfsync always: 每次操作都会立即写入aof文件中
持久化策略:appendfsync everysec: 每秒持久化一次(默认配置)
持久化策略:appendfsync no: 不主动进行同步操作,默认30s一次
2.重启服务
redis-cli -h 127.0.0.1 -p 6379 shutdown (源码安装)
/etc/init.d/redis-server restart (yum/apt-get安装)