例
redis是当下利用非常广泛的有关内存数据库,很多互联网行业中已广泛地采取了Redis,但Redis有时也会出现问题,如果遇到Redis断电,这将影响系统的正常使用。这篇文章将介绍一种Redis断电恢复技术,及其在实际运维保护中的利用实践。
Redis的断电恢复包括保存和恢复两个部份。在Redis中,配置文件中设置“save”和“rdbcompression”属性,该属性将用于保存Redis数据:
save 900 1
save 300 10 save 60 10000
rdbcompression yes
这表明,当Redis履行持久保存操作时,如果900秒内有1个key被修改过;300秒内最少有10个key被修改过;60秒内最少有10000个key被修改过,Redis将履行持久保存操作,并且开启紧缩功能。
在断电的情况下,首先需要根据断电的时间点来判定要使用哪一个rdb文件来恢复。从Redis的数据保存日志文件内容可以看出,数据库的持久保存在甚么时间点完成了:
[83061] 07 Jul 12:19:53.057 * RDB: 2 MB of memory used by copy-on-write
[83345] 07 Jul 12:22:37.034 * DB saved on disk
因此,此例中,Redis持久保存在恢复之前的数据在“07 Jul 12:22:37.034”时间点完成,那末此时恢复使用的应当是dump.rdb.83345这个文件。
完成文件选择以后,接下来可使用redis-cli加载文件,该命令格式为:
redis-cli --rdb dump.rdb.83345 --p {password}
最后并且也是最重要的一点,就是要进行相关的数据完全性验证,斟酌到可能存在的磁盘读写毛病记录,一般都会使用文件的checksum来验证文件会不会正确,当满足以下两个条件时,可肯定恢复成功:
1. 使用dump.rdb.83345文件断电恢复Redis,恢复进程无误。
2. 使用checksum工具计算本地文件保存的checksum和从Redis实例获得的checksum比较,二者一致,则可以肯定Redis断电恢复成功!
综上所述,我们可以知道怎么实现Redis断电恢复,也能够根据实际情况,结合上述的技术步骤编写脚本和实现自动化的恢复,从而大大下降恢复系统的工作量,提高运维效力。
本文来源:https://www.yuntue.com/post/166886.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏