Redis切换为AOF不丢数据的正确步骤
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis切换为AOF不丢数据的正确步骤相关的知识,希望对你有一定的参考价值。
参考技术A 因为AOF丢失数据的概率更低,因此如果对Redis中数据的完整性要求高的话,通常会启用AOF。但是由于启用AOF之后,重启Redis,默认就会从aof恢复数据,就会忽略dump.rdb中的数据,就会造成重启之前数据的丢失,因此Redis从RDB向AOF切换的时候要使用如下步骤:1)把redis配置文件启用AOF,比如appendonly设置为yes;建议把appendfsync设置为everysec,这样一秒同步一次,性能不会像always那样差,而且最多丢一秒钟的数据。其他配置请参考其他资料。
注意:只是修改配置文件,先不要停止或者重启redis服务。
2)Redis CLI中执行save,以便把数据全部写入dump.rdb,这是一步备份操作。以便于万一aof失败,还能到dump.rdb中把数据恢复回来。
3)Redis CLI中执行bgrewriteaof ,从而把数据写入.aof,便于下次以aof启动的时候加载数据。
4)aof写入完成后,重启Redis服务器即可。
5)如果启动后数据正常,rdb就没用了,愿意删就删。
关键的一步就是在配置启用aof并且重启服务器之前,要先执行bgrewriteaof。
redis不重启之rdb数据切换到aof数据
温馨提示:
要实现不重启从rdb切换到aof,redis的版本必须要在2.2以上。
[[email protected] /data 22:23:30]#redis-server -v Redis server v=4.0.10 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=64cb6afcf41664c
环境准备
redis.conf服务端配置文件
daemonize yes port 6379 logfile /data/6379/redis.log dir /data/6379 dbfilename dbmp.rdb save 900 1 #rdb机制 每900秒 有1个修改记录 save 300 10 #每300秒 10个修改记录 save 60 10000 #每60秒内 10000修改记录
启动redis服务端
redis-server redis.conf
登录redis-cli插入数据,手动持久化
127.0.0.1:6379> set name chaoge
OK
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> set addr shahe
OK
127.0.0.1:6379> save
OK
检查RDB文件
[[email protected] /data 22:34:16]#ls 6379/ dbmp.rdb redis.log
备份fdb文件,保证数据的安全
[[email protected] /data/6379 22:35:38]#cp dbmp.rdb /opt/
执行命令,开启aof持久化
127.0.0.1:6379> CONFIG set appendonly yes #开启AOF功能 OK 127.0.0.1:6379> CONFIG SET save "" #关闭RDB功能 OK
确保数据库的key数量正确
127.0.0.1:6379> keys * 1) "addr" 2) "age" 3) "name"
确保插入新的key,AOF文件会记录
127.0.0.1:6379> set title golang OK
此时RDB已经正确切换AOF,注意还得修改redis.conf添加AOF设置,不然重启后,通过config set的配置将丢失
以上是关于Redis切换为AOF不丢数据的正确步骤的主要内容,如果未能解决你的问题,请参考以下文章