Redis持久化文件异常原因以及修复方法
- - 丕子上线了Redis的模块,昨天Redis Server重启了,但是Redis Instance起不来了,同学联系我,我也不知道具体情况,就猜了几个原因:1、持久化文件可能太大,没load完,所以短时间内启动不了. 2、主从配置文件被sentinel修改乱了. 最后查了下原因,是由于机房突然断电导致redis aof持久化文件写入异常,这个问题详见: link.
上线了Redis的模块,昨天Redis Server重启了,但是Redis Instance起不来了,同学联系我,我也不知道具体情况,就猜了几个原因:1、持久化文件可能太大,没load完,所以短时间内启动不了? 2、主从配置文件被sentinel修改乱了?
最后查了下原因,是由于机房突然断电导致redis aof持久化文件写入异常,这个问题详见: link。
简单来说,aof持久化文件中的内容都是以apend形式存储的redis commands。例如:
SET "P" 0 SET
第二条SET没有写完,这样redis instance启动的时候检查到aof文件异常,并且为了保证数据强一致性,会决绝载入aof文件,当然也不会提供服务了。
Redis提供的工具redis-check-aof可以检查并且帮助用户修复持久化文件,例如,将上面的第二条SET命令直接丢弃了。
所以,以后若碰到突然断电、磁盘写满等带来的redis启动失败问题的时候,如果用的aof持久化方式,可以检查下aof文件是否有异常。
您可能也喜欢: | ||||
Redis集群增删节点的数据迁移问题 |
一个Redis监控dashboard |
Redis在新浪微博中的应用 |
TFS(Taobao File System)-淘宝文件系统 |
Redis Cluster的安装和配置(beta-6) |
无觅 |