redis持久化方式有哪些?又有何区别?

  1. rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能。
  2. 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备份】的更多相关文章

  1. 【Redis运行状态下切换RDB备份至AOF备份】

    "redis持久化方式有哪些?又有何区别? rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能. aof:以追加的方式记录redis操作日志的文件,可最大程 ...

  2. redis不重启,切换到RDB备份到AOF备份

    redis不重启,切换RDB备份到AOF备份 确保redis版本在2.2以上 查看redis版本 redis-server -v 实验环境准备 本文是在redis4.0中,通过config set命令 ...

  3. redis不重启,切换RDB备份到AOF备份

    确保redis版本在2.2以上 [root@pyyuc /data ::]#redis-server -v Redis server v= sha=: malloc=jemalloc- bits= b ...

  4. 15.4,redis不重启,切换RDB备份到AOF备份

      确保redis版本在2.2以上 [root@pyyuc /data ::]#redis-server -v Redis server v= sha=: malloc=jemalloc- bits= ...

  5. 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 ...

  6. redis系列(四):切换RDB备份到AOF备份

    1.准备环境 redis.conf服务端配置如下: daemonize yes port logfile /data//redis.log dir /data/ dbfilename dbmp.rdb ...

  7. redis++:Redis的两种持久化 RDB 和 AOF

    Redis持久化备份数据的方式有两种:RDB(Redis DataBase) . AOF(Append Only  File). RDB 什么是RDB: 在指定时间间隔内,将内存中的数据集快照写入磁盘 ...

  8. Redis 通过 RDB 方式进行数据备份与还原

    Redis 通过 RDB 方式进行数据备份与还原 Intro 有的时候我们需要对 Redis 的数据进行迁移,今天介绍一下通过 RDB(快照)文件进行 Redis 数据的备份和还原 Redis 持久化 ...

  9. redis介绍(3)RDB和AOF原理解析

    简单科普一下redis的概念:(会的可忽略) Redis的概念 redis基于内存的Key Value类型的NoSQL数据库. Redis的特点 1. Redis是一个高性能的Key/Value数据库 ...

随机推荐

  1. 成都磨子桥技工学校 / 2016届练习区 0003:jubeeeeeat

    0003:jubeeeeeat 总时间限制:  1000ms 内存限制:  256000kB 描述 众所周知,LZF很喜欢打一个叫Jubeat的游戏.这是个音乐游戏,游戏界面是4×4的方阵,会根据音乐 ...

  2. Objective-C的陷阱与缺陷

    Objective-C是一个强大而且非常有用的语言,但是同样也是有一点危险的.这次主题是受到一篇有关C++陷阱的文章启发,来聊聊Objective-C和Cocoa中的陷阱. 简介 我将和Horstma ...

  3. 开源 java CMS - FreeCMS2.3会员个人资料

    原文地址:http://javaz.cn/site/javaz/site_study/info/2015/28577.html​ 项目地址:http://www.freeteam.cn/ 个人资料 从 ...

  4. 几种常见sqlalchemy查询:

        #简单查询     print(session.query(User).all())     print(session.query(User.name, User.fullname).all ...

  5. iOS 报错:(子线程中更新UI)This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.

    今天在写程序的时候,使用Xcode 运行工程时报出下面的错误错信息,我还以为是什么呢,好久没遇到过这样的错误了. **ProjectName[1512:778965] This application ...

  6. zzulioj--1822--水水更健康(水题)

    1822: 水水更健康 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 49  Solved: 19 SubmitStatusWeb Board Des ...

  7. VS导出方法名和方法备注的方法

    VS导出方法名和方法备注的方法 方法一: 只能导出图片格式的UML 类图 1.点击查看类图 2.在空白处点击讲关系导出为图像 方法二: 是把整个类库的方法名都罗列出来 这个方便整理一些 具体方法如下 ...

  8. 虚拟主机TOMCAT配置

    在tomcat中添加虚拟主机: 编辑"tomcat\conf\server.xml",在"<Engine></Engine>"元素中新加 ...

  9. Oracle 流程控制语句

    分为选择语句循环语句两大类:一 选择语句1 if then ...end;set serveroutput on declare var_name1 varchar2(50):='East'; var ...

  10. ACM-ICPC 2017 Asia Urumqi(第八场)

    A. Coins Alice and Bob are playing a simple game. They line up a row of nnn identical coins, all wit ...