redis持久化
redis特性
edis是内存型的数据库
redis数据放在内存中
重启服务器丢失数据
重启redis服务丢失数据
断电丢失数据
为了防止redis数据丢失,进行持久化,所以将数据写入到一个文件中来实现
RDB持久化
在配置文件中,添加rdb持久化参数
redis-6379.conf
写入如下配置
port 6379
daemonize yes
pidfile /data/6379/redis.pid
loglevel notice
logfile "/data/6379/redis.log"
dir /data/6379
protected-mode yes
dbfilename dbmp.rdb
# 定时创建数据快照机制
save 900 1 # rdb机制 每900秒 有1个修改记录
save 300 10 # 每300秒 10个修改记录
save 60 10000 # 每60秒内 10000修改记录
注意: 修改完配置之后,需要重启redis服务
触发rdb持久化,可以手动save命令即可,生成 dump.rdb持久化文件
重启redis,数据不再丢失
rdb数据文件是二进制文件,人为的看不懂
AOF持久化
在配置文件中,添加aof参数
在redis-6379.conf中添加参数,开启aof功能
appendonly yes #是否开启aof持久化功能,默认为不开启no
appendfsync everysec #aof写数据策略。always(每次) ,erverysec(每秒), no(系统控制)
重启redis数据库,加载aof功能
AOF重写
- 手动重写
bgrewriteaof
- 自动重写
auto-aof-rewrite-min-size size
auto-aof-rewrite-percentage percentage
redis持久化RDB转化AOF
删除现有的aof文件,备份RDB文件
cd /data/6379
rm -rf appendonly.aof
cp qishi5.rdb qishi5.rdb.bak
配置RDB切换到AOF
# 先进入redis客户端
redis-cli
# 配置开启AOF
127.0.0.1:6379> config set appendonly yes
# 关闭RDB
127.0.0.1:6379> config set save ""
以上配置重启后会失效,如果需要永久将RDB切换到AOF, 还是需要修改配置文件才可以