回到顶部
v备份数据
? 备份Redis数据
在阅读这个小节前,先将下面这句话铭记于心: 一定要备份你的数据库!
磁盘故障,节点失效,诸如此类的问题都可能让你的数据消失不见,不进行备份是非常危险的 。
Redis 对于数据备份是非常友好的,因为你可以在服务器运行的时候对 RDB 文件进行复制: RDB 文件一旦被创建,就不会进行任何修改 。当服务器要创建一个新的 RDB 文件时,它先将文件的内容保存在一个临时文件里面,当临时文件写入完毕时,程序才使用 rename(2) 原子地用临时文件替换原来的 RDB 文件 。
这也就是说,无论何时,复制 RDB 文件都是绝对安全的 。
以下是我们的建议:
- 创建一个定期任务(cron job),每小时将一个 RDB 文件备份到一个文件夹,并且每天将一个 RDB 文件备份到另一个文件夹 。
- 确保快照的备份都带有相应的日期和时间信息,每次执行定期任务脚本时,使用 find 命令来删除过期的快照: 比如说,你可以保留最近 48 小时内的每小时快照,还可以保留最近一两个月的每日快照 。
- 至少每天一次,将 RDB 备份到你的数据中心之外,或者至少是备份到你运行 Redis 服务器的物理机器之外 。
Redis 的容灾备份基本上就是对数据进行备份,并将这些备份传送到多个不同的外部数据中心 。
容灾备份可以在 Redis 运行并产生快照的主数据中心发生严重的问题时,仍然让数据处于安全状态 。
- Amazon S3,以及其他类似 S3 的服务,是一个构建灾难备份系统的好地方 。最简单的方法就是将你的每小时或者每日 RDB 备份加密并传送到 S3。对数据的加密可以通过 gpg -c 命令来完成(对称加密模式) 。记得把你的密码放到几个不同的、安全的地方去(比如你可以把密码复制给你组织里最重要的人物) 。同时使用多个储存服务来保存数据文件,可以提升数据的安全性 。
- 传送快照可以使用 SCP 来完成(SSH 的组件) 。以下是简单并且安全的传送方法: 买一个离你的数据中心非常远的 VPS,装上 SSH,创建一个无口令的 SSH 客户端 key,并将这个 key 添加到 VPS 的 authorized_keys 文件中,这样就可以向这个 VPS 传送快照备份文件了 。为了达到最好的数据安全性,至少要从两个不同的提供商那里各购买一个 VPS 来进行数据容灾备份 。
最低限度下,你应该在文件传送完毕之后,检查所传送备份文件的体积和原始快照文件的体积是否相同 。如果你使用的是 VPS,那么还可以通过比对文件的 SHA1 校验和来确认文件是否传送完整 。
另外,你还需要一个独立的警报系统,让它在负责传送备份文件的传送器(transfer)失灵时通知你 。
作 者:请叫我头头哥
出 处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发 。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接 。
特此声明:所有评论和私信都会在第一时间回复 。也欢迎园子的大大们指正错误,共同进步 。或者直接私信我
【Redis数据持久化,及实现方式】
推荐阅读
- 为什么分布式一定要有Redis?
- 如何设计数据库:淘宝商品数据库设计的一些经验
- 茶叶大数据颠覆你的认知 喝不喝茶的都看看
- 抖音运营如何分析对标账号,对标账号我们都需要分析哪些数据
- 2021抖音电商年度数据
- 洗茶真的不科学 实验数据告诉你 事实就是如此残酷
- Excel录入数据防止出错,设置自动限制的技巧
- 人工智能算法是如何从数据中学习规律的
- 只要10分钟,教你配置出炫酷的数据可视化大屏
- mysql数据库 InnoDB崩溃恢复机制总结