redis的备份
了解redis的朋友应该知道它有两种数据持久化的方式,这里我作一个简单的介绍,AOF(append only file)和RDB.
1.RDB
这是一种比较常见的方式,采用 写时复制 的方式,效率高,速度快,介绍一下写时复制的机制:
当 Redis 需要保存 dump.rdb 文件时, 服务器执行以下操作:
- Redis 调用 fork() ,同时拥有父进程和子进程。
- 子进程将数据集写入到一个临时 RDB 文件中。
- 当子进程完成对新 RDB 文件的写入时,Redis 用新 RDB 文件替换原来的 RDB 文件,并删除旧的 RDB 文件。
这种工作方式使得 Redis 可以从写时复制(copy-on-write)机制中获益。
这种机制使得RDB的速度非常得快,但是存在一些安全性问题,当我的redis服务因为某种原因宕了,当内存新增数据很庞大,子进程需要几分钟才能将临时文件书写完毕的时候。那么在宕机之后,这几分钟的数据很可能就丢失了。所以处于安全性考虑的原因,我会建议使用第二种方式,AOF机制。
2.AOF
aof采用一种fsync的方式进行持久化,相比RDB的方式会相对较慢。但是相对安全,甚至可以说是绝对安全的,取决于具体的配置。他不需要子进程进行协助,他是一种将有关写的命令append到文件的方式来记录redis的状态方式。aof也可以分为三种方式进行append。在此之前先打开appendonly的开关为yes.
appendfsync always (每次向内存中执行写操作的时候,都执行一次fsync,相当安全,建议数据量不大的时候,又想保证数据安全性的情况下使用)
appendfsync everysec (每秒进行一次fsync,中庸之道)
appendfsync no (不建议使用)
我这里例举一下redis>2.2的由RDB切换到AOF的方式
[root@localhost redis-2.8.9]# redis-cli
127.0.0.1:6379> config set appendonly yes
OK
127.0.0.1:6379> config set save ""
OK
127.0.0.1:6379>
redis-cli进入redisShell客户端,然后开启aof ,关闭RDB方式。
记得修改 redis.conf里面的配置,不然下次重启还是使用原来的配置,读取dump.rdb进行恢复
配置修改如下:
#save "" save "" save 900 1 #save 900 1
save 300 10 ------------------> #save 300 10
save 60 10000 #save 60 10000
appendonly no ---------------------> appendonly yes
备份文件有两种方式
一.RBD备份方式
1.执行save命令 ,找到dump.rdb(默认放到执行命令(redis-server)的路径下)
2.执行redis-server redis.conf (如果配置文件选择的是RDB备份方式)
启动之后就ok了
二.AOF备份方式
1.找到appendonly.aof(默认放到执行命令(redis-server)的路径下)
2.执行redis-server redis.conf就可以了(如果配置文件选择的是AOF备份方式)
redis的备份的更多相关文章
- Redis实战——redis主从备份和哨兵模式实践
借鉴:http://redis.majunwei.com/topics/sentinel.html https://blog.csdn.net/u011784767/article/detai ...
- redis主从备份
redis主从备份,默认是读写分离的,master用于写,slave用于读.slave的写只能用于存储一些短暂状态的变量,应为在下次同步时,会被移除. 配置主从备份原则:配从不配主,既只需修改从库配置 ...
- redis 主从备份自动切换+java代码实现类
转载:http://blog.csdn.net/qq_23430789/article/details/52185706 目录(?)[-] redis-0sentinel实例之间的通讯端口 maste ...
- redis的备份和恢复
Redis 数据备份与恢复 数据备份 语法 redis Save 命令基本语法如下: redis > SAVE 实例 redis > SAVE OK 该命令将在 redis 备份目录中创建 ...
- 单机部署redis主从备份
redis为了避免单点故障,也支持主从备份.个人在做主从备份的实验时,因为机器数量有限,一般非常少有多台机器做支撑. 本文就将叙述怎样在一台电脑上实现redis的主从备份. 同一台机器上部署多个red ...
- Redis数据备份、安全、管理服务器笔记
Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. 实例 redis > SAVE OK 恢复数据 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 ...
- redis 数据备份持久化方案
本文链接:http://www.cnblogs.com/zhenghongxin/p/9050219.html 使用两种备份方案 备份方案选择RDB和AOF同时进行备份,必须打开AOF的持久化机制,除 ...
- [Redis] redis数据备份恢复与持久化
数据库备份,使用save命令,将会在redis的安装目录中生成dump.rdb 例如:在我的目录下 redis/src/dump.rdb 使用命令config get dir,获取当前redis的安装 ...
- redis的备份恢复
说明:默认rdb方式保存,redis支持主从和哨兵等,但是在某些情况下我们会单机跑,所以有时候我们就会需要设计到备份恢复 环境:原始redis:192.168.1.200 新redis:192.168 ...
随机推荐
- iOS 9 failed for URL: "XXX://@" - error: "This app is not allowed to query for scheme XXX" iOS 从APP里启动另一APP
iOS 从C APP里启动 D APP 首先在D APP里设置 URL Schemes 在info.plist 文件里添加URL Schemes URL Types -->item0 --> ...
- Android项目实战--手机卫士开发系列教程
<ignore_js_op> banner131010.jpg (71.4 KB, 下载次数: 0) 下载附件 保存到相册 2 分钟前 上传 Android项目实战--手机卫士01- ...
- linux crontab 文件位置和日志位置
一.文件位置 位置一般在/var/spool/cron/下,如果你是root用户,那下面有个root文件,建议日常备份,避免误删除导致crontab 文件丢失: 二.日志文件位置 默认情况下,cron ...
- latextools \cite 自动补全
最近在用latex写毕业论文,编辑环境用的是Sublime Text 2 加 latextools 插件,在使用latextools的\cite命令来引用参考文献时,我们希望输入\cite{ 后自动弹 ...
- Java 模板引擎 jetbrick-template
jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性. 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板. 指令和 ...
- WPF 模板
一.DataTemplate(数据模板)1.引用命名空间xmlns:别名="clr-namespace:命名空间" 2.调用命名空间下的类别和属性<Window.Resour ...
- 通过lua获取nginx的内置变量,通过这些变量做些逻辑的处理
Nginx提供了很多内置的变量,如: $arg_PARAMETER 这个变量包含在查询字符串时GET请求PARAMETER的值. $args 这个变量等于请求行中的参数. $binary_remote ...
- Swift 3 新特性
原文:What's New in Swift 3? ,作者:Ben Morrow,译者:kmyhy Swift 3将于今年下半年推出,为Swift开发者们带来了很多核心代码的改变.如果你没有关注过 S ...
- CentOS6下Haproxy的安装配置
Haproxy 是一个开源的负载均衡和反向代理软件,其提供了高可用的网络服务.其一般是应用于web服务,但同时也能为SMTP和终端服务等提供可靠的支持. 1.下载安装haproxy wget ftp: ...
- [原]quick集成spine动画
更新说明: 新增了骨骼绑定node用法 参考:http://blog.csdn.net/n5/article/details/21795265 在SkeletonRenderer.h 和cpp里面新加 ...