【Redis实现运行状态下切换RDB备份至AOF备份】
redis持久化方式有哪些?又有何区别?
rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能。aof:以追加的方式记录redis操作日志的文件,可最大程度的保证redis数据安全,类似于mysql的binlog。
本文将在redis5.0.2版本中,通过CONFIG SET命令,达到不重启redis服务的情况下,从RDB存储模式切换至AOF存储模式。
确保redis版本在2.2以上
[root@master redis5]# redis-server -v
Redis server v=5.0.2 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=55a56548bc97ef03
redis当前的配置文件如下
# pid文件路径
pidfile /var/run/redis/6380.pid # 日志级别
loglevel notice # redis数据存放位置
dir /usr/local/redis5/db/6380/ # 日志文件路径
logfile /var/log/redis/6380.log # redis3.0之后的安全模式
# 安全模式可能会阻挡远程连接,可给redis设置密码解决这个问题
protected-mode yes # reids密码
requirepass redis_password """重点配置:重点在下面的配置""" # 指定本地数据库文件名,其存储的数据为二进制类型
dbfilename dump.rdb # 指定在多长时间内,有多少次更新操作才将数据同步到数据文件,redis默认提供了3个条件:
save 900 1
save 300 10
save 60 10000
# 其分别为:
# save 900 1 每900秒内有1个修改记录时转存
# save 300 10 每300秒内有10个修改记录时转存
# save 60 10000 每60秒内有10000修改记录时转存
可以看到,我们的当前实验环境为
rdb持久化存储模式。
开始切换
.
登陆redis-cli插入些数据,并手动持久化:192.168.43.149:6380> set k1 v1
OK
192.168.43.149:6380> set k2 v2
OK
192.168.43.149:6380> save
OK
安全起见,我们备份RDB数据:
[root@master redis5]# cp /usr/local/redis5/db/6380/dump.rdb /opt/此时,再进入redis-cli,执行如下命令,开启AOF持久化:
# 开启AOF功能
192.168.43.149:6380> CONFIG set appendonly yes
OK
# 关闭RDB功能
192.168.43.149:6380> CONFIG set save ''
OK
确保数据库中的key数量正确:
192.168.43.149:6380> keys *
1) "k2"
2) "k1"
开启AOF模式后,会自动生成appendonly.aof持久化文件:
[root@master redis5]# ls /usr/local/redis5/db/6380/
appendonly.aof dump.rdb
此时进入redis-cli的操作,都会被记录,且追加到appendonly.aof文件中,以达到持久化的目的。
192.168.43.149:6380> set k3 v3
OK
此时RDB已经正确切换至AOF,注意还得修改redis配置文件,添加AOF设置,不然重启后,通过config set的配置将丢失。
修改配置文件,使AOF模式永久生效
.
将上面展示的redis配置文件中标记的"重点配置"的配置项替换为下面的配置项:appendonly no
appendfsync everyses
appendonly no指定是否在每次更新操作后进行日志记录
·
redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内> 的数据丢失
因为redis本身同步数据文件是按上面的save条件来同步的,所以有的数据会在一段时间内> 只存在于内存中
.
appendfsync everyses指定更新日志的条件
此配置有3个可选值:
no:等待操作系统进行数据缓存同步到磁盘(快)
always:每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
everysec:每秒同步一次(折衷,默认值)
【Redis实现运行状态下切换RDB备份至AOF备份】的更多相关文章
- 【Redis运行状态下切换RDB备份至AOF备份】
"redis持久化方式有哪些?又有何区别? rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能. aof:以追加的方式记录redis操作日志的文件,可最大程 ...
- redis不重启,切换到RDB备份到AOF备份
redis不重启,切换RDB备份到AOF备份 确保redis版本在2.2以上 查看redis版本 redis-server -v 实验环境准备 本文是在redis4.0中,通过config set命令 ...
- redis不重启,切换RDB备份到AOF备份
确保redis版本在2.2以上 [root@pyyuc /data ::]#redis-server -v Redis server v= sha=: malloc=jemalloc- bits= b ...
- 15.4,redis不重启,切换RDB备份到AOF备份
确保redis版本在2.2以上 [root@pyyuc /data ::]#redis-server -v Redis server v= sha=: malloc=jemalloc- bits= ...
- redis之不重启,切换RDB备份到AOF备份
确保redis版本在2.2以上 [root@pyyuc /data 22:23:30]#redis-server -v Redis server v=4.0.10 sha=00000000:0 mal ...
- redis系列(四):切换RDB备份到AOF备份
1.准备环境 redis.conf服务端配置如下: daemonize yes port logfile /data//redis.log dir /data/ dbfilename dbmp.rdb ...
- redis++:Redis的两种持久化 RDB 和 AOF
Redis持久化备份数据的方式有两种:RDB(Redis DataBase) . AOF(Append Only File). RDB 什么是RDB: 在指定时间间隔内,将内存中的数据集快照写入磁盘 ...
- Redis 通过 RDB 方式进行数据备份与还原
Redis 通过 RDB 方式进行数据备份与还原 Intro 有的时候我们需要对 Redis 的数据进行迁移,今天介绍一下通过 RDB(快照)文件进行 Redis 数据的备份和还原 Redis 持久化 ...
- redis介绍(3)RDB和AOF原理解析
简单科普一下redis的概念:(会的可忽略) Redis的概念 redis基于内存的Key Value类型的NoSQL数据库. Redis的特点 1. Redis是一个高性能的Key/Value数据库 ...
随机推荐
- STM32中assert_param的使用
在STM32的固件库和提供的例程中.到处都能够见到assert_param()的使用. 假设打开不论什么一个例程中的stm32f10x_conf.h文件,就能够看到实际上assert_param是一个 ...
- 与Greenplum度过的三个星期
5月4日-5月24日.断断续续折腾了三个星期的Greenplum,总算告一段落了:扩容,发现扩不成容.仅仅好升级.升级,发现一堆错误,仅仅好暂停修复数据库:修好了,继续升级.升完级,发现错误.修啊修啊 ...
- Block的使用--初探Block
看了两天的Block. 网上是有非常多解说与教程,也有讲得非常好的.这里就主要解说下我的理解与收获.欢迎拍砖. 所谓block.我觉得应该是一个闭包函数.而闭包,就是说block以及内部全部的变量生命 ...
- tomcatserver管理界面username和password忘记
tomcatserverhttp://localhost:8080/ 这样訪问,点击Manager App后要求输入username和password才干进入管理应用界面 我忘记了username和p ...
- Linux 文件系统初步
在Linux系统中,假设我们想要知道一个文件的详细信息,那么最简便的方法自然就是ls命令了.例如以下图所看到的:当在shell输入命令"ls -l old"时,在下方就会 ...
- 2014 Unity3d大会的部分总结
一.项目开发.管理和公布策略 1. 四大准则 a. 美术的资源量 b. 美术规范,要依据开发什么样的游戏制定统一的规范,这样尽可能的形成统一的规范.然后程序要协助美 ...
- spark 类标签的稀疏 特征向量
一个向量(1.0,0.0,3.0)它有2中表示的方法 密集:[1.0,0.0,3.0] 其和一般的数组无异 稀疏:(3,[0,2],[1.0,3.0]) 其表示的含义(向量大小,序号,值 ...
- Pickling
Pickle translates almost any type of object into a string. pickle.dumps takes an object as a paramet ...
- Spring MVC模式示例(采用解耦控制器+校验器)
Product package com.mstf.bean; import java.io.Serializable; /** * Product类,封装了一些信息,包含三个属性 * @author ...
- rails 开发随手记 9
ruby 根据名称确定类Object.const_get 一个简单的应用,在header中的,个人信息链应该链接到对应的用户类型的页面上. <%= link_to "个人信息" ...