Redis的故障处理

  1. 首先,我们如果只用redis进行数据存储,那就需要我们做好应对故障的准备,因为有很多不可抗因素会导致机器宕机或者系统崩溃
  2. 接下来我们需要了解一下数据库事务的四个特性(ACID)
    1. Atomicity原子性:原子性任务是一个独立的操作单元,是一种要么全部是,要么全部不是的原子单位性的操作。
    2. Consistency一致性:一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。
    3. Isolation隔离性:事务是并发控制机制,他们交错使用时也能提供一致性。隔离让我们隐藏来自外部世界未提交的状态变化,一个失败的事务不应该破坏系统的状态。隔离是通过用悲观或乐观锁机制实现的。
    4. Durability耐久性:个成功的事务将永久性地改变系统的状态,所以在它结束之前,所有导致状态的变化都记录在一个持久的事务日志中。如果我们的系统突然受到系统崩溃或断电,那么所有未完成已提交的事务可能会重演。
  3. 验证快照文件和AOF文件
    1. redis提供了两个命令,用来在系统宕机后检查快照文件和aof文件的状态,并进行修复
      1. redis-check-dump(修复快照)  目前没有办法修复出错的快照文件,因为快照文件本身时进行过了压缩,快照中的错误可能会导致剩余不问无法读取,解决办法是将重要的快照保留多个备份,在后期的数据恢复是通过计算快照文件的SHA1散列值和SHA256散列值来对内容进行验证
      2. redis-check-aof(修复aof)  用户运行redis-check-aof --fix,程序将会对文件修复,扫描aof文件找出第一个出错的命令,并且删除出错命令之后的所有命令,只保留那些为出错的命令,在大多情况下,被删除的都是aof文件末尾的不完整的命令

你可能感兴趣的:(Redis)