Redis快速恢复数据
- Redis的flushall/flushdb命令可以做数据清除,对于Redis的开发和运维人员有一定帮助,然而一旦误操作,它的破坏性也是很明显的。怎么才能快速恢复数据,让损失达到最小呢?
- 注意:为了方便说明,下文中除了AOF文件中的flushall/flushdb以外,其他所有的flushall/flushdb都用flush代替
- 本文假设进行flush操作的Redis是一对主从结构的主节点,其中键值对的个数是100万,每秒写入量是1000
一、缓存与存储
- 被误操作flush后,根据当前Redis是缓存还是存储使用策略有所不同:
- 缓存:对于业务数据的正确性可能造成损失还小一点,因为缓存中的数据可以从数据源重新进行构建,但是在前面文章介绍了缓存雪崩和缓存穿透的相关知识,当前场景也有类似的地方,如果业务方并发量很大,可能会对 后端数据源造成一定的负载压力,这个问题也是不容忽视
- 存储:对业务方可能会造成巨大的影响,也许flush操作后的数据是重要配置,也可能是一些基础数据,也可能是业务上的重要一环,如果没有提 前做业务降级操作,那么最终反馈到用户的应用可能就是报错或者空白页面 等,其后果不堪设想。即使做了相应的降级或者容错处理,对于用户体验也有一定的影响
- 所以Redis无论作为缓存还是作为存储,如何能在flush操作后快速恢复数据才是至关重要的。持久化文件肯定是恢复数据的媒介,下面将对AOF和RDB
相关内容