本篇博客主要来解说一下怎样Redis中的持久化操作,当然了不是一篇理论性的博客,主要还是分享一下在redis中怎样来配置持久化操作。
1.介绍
redis为了内部数据的安全考虑,会把本身的数据以文本形式保存到硬盘中一份,在server重新启动之后会自己主动把硬盘的数据恢复到内存(redis)里边。数据保存到硬盘的过程就称为“持久化”效果。
2.snap shotting 快照持久化
这个持久化的操作在redis中是默认开启的。一次性把redis中所有的数据保存为一份存储在硬盘中,假设数据许多的话。就不适合该持久化操作。
在redis.conf文本中能够配置频率。默认例如以下图
save 900 1:表示900秒内假设超过1个key被改动,则发起快照保存
save 300 10:表示300秒超过10个key被改动,发起快照
save 60 10000:表示60秒超过10000个key被改动,发起快照
以上3个save的意思表示。数据改动的频率很高,备份的频率也高
最后保存的文件夹例如以下。也能够改动
手动发起快照持久化
在redis中,我们也能够手动的发起快照保存,来保存我们的数据,经常使用的命令例如以下
bgsave:异步保存数据到磁盘
lastsave:返回上次成功保存到磁盘的时间戳
shutdown:同步保存到server并关闭redisserver
bgrewriteaof:当日志文件过长时优化AOF日志文件存储
#./redis-cli bgrewriteaof #./redis-cli -h hostname -p port
3.append only file(AOF持久化)
这个持久化操作能够把用户的每一个命令都保存到数据中,包含CRUD操作,还原数据的时候就是把这些运行运行而已
首先须要开启AOF持久化操作,相同须要改动redis.conf文件。须要注意的是开启后会清空redis中的数据,因此在安装完redis后就须要开启AOF操作
最后启动后,会在当前文件夹中看到appendonly.aof文件。
AOF的追加频率
相同须要编辑redis.conf文件,来改动AOF的追加频率。常见參数例如以下
#appendfsync always:每次收到命令就马上强制写入磁盘。性能最慢。可是保证全然的持久化
#appendfsync everysec:每秒钟强制写入磁盘一次,在性能和持久化方面最了很好的折中
#appendfsync no:全然依赖操作系统,性能好的时候就持久,不好的时候就不持久化