redis有rdb和aof两种持久化方式;

rdb

默认方式,配置文件中相关的有:

save 900 1    #900秒一次,若有1个或以上key修改则save一次,以下相同
save 300 10
save 60 10000
dbfilename dump.rdb #备份的文件名
dir /data/redis/6379 #rdb和aof文件的所在路径

rdb方式就是传统的备份,把数据都写到一个文件里;

优点:备份的文件存储和还原都方便快捷;

缺点:出现异常的时候会丢失数据,另外理论上save时不影响使用,但实践中出现过数据量太大save很长时间且期间redis性能大降甚至不可用;

关闭rdb备份,只需要把那三个save开头的配置项都注释即可;

aof

默认是关闭的,配置文件中相关的有:

appendonly no    #改为yes开启aof
appendfilename "appendonly.aof" #aof文件名 # appendfsync always #每次修改都记录到aof
appendfsync everysec #每秒记录一次(三选一,这个是默认)
# appendfsync no #由操作系统决定 auto-aof-rewrite-percentage 100 #增长超过100%时rewrite
auto-aof-rewrite-min-size 64mb #aof文件不超过64m时,不进行rewrite,可以适当调大,比如512或1024

aof是把操作记录写到文件中,还原的时候也是一条条执行一遍

优点:数据非常重要就用always,普通的用everysec兼顾性能和安全,最大限度避免丢失;

缺点:会重复记录同一个key的多次修改,文件会较大,重启和还原很慢,不过rewrite可以解决一大部分;

总结

实践过程中,由于出现过数据量非常大时save导致业务不可用的情况,所以现在都是用的aof everysec,定期在业务不忙时(比如深夜)手动进行save;

如果配置了主从,可以考虑主aof,从save;

over

redis持久化配置的更多相关文章

  1. redis之 Redis持久化配置

    Redis持久化配置 Redis的持久化有2种方式   1快照  2是日志 Rdb快照的配置选项 save 900 1      // 900内,有1条写入,则产生快照 save 300 1000   ...

  2. apscheduler(定时任务) 基于redis持久化配置操作

    apscheduler(定时任务) 基于redis持久化配置操作 安装模块 pip install apscheduler 导入模块配置 ## 配置redis模块 from apscheduler.j ...

  3. 五、Redis持久化配置

    转载:[https://www.cnblogs.com/xingzc/p/5988080.html] Redis提供的持久化机制(RDB和AOF) Redis提供的持久化机制 Redis是一种面向“k ...

  4. docker+redis 持久化配置(AOF)

    RDB持久化与AOF持久化简单描述 RDB:RDB使用快照的方式存储数据库中的内容,直接将所有键值对数据全部存入二进制文件.建议使用BGSAVE来进行备份,整个过程会新fork一个子进程来执行,不影响 ...

  5. Redis持久化配置-AOF

    redis的持久化有rdb和aof两种. rdb是记录一段时间内的操作,一般的配置是一段时间内操作超过多少次就持久化.aof可以实现每次操作都持久化. 这里我们使用aof. 配置方式,打开redis的 ...

  6. Redis搭建(六):Redis持久化配置

    一.介绍 Redis的持久化有2种方式: Rdb快照 Aof日志 1. Rdb快照的配置选项 save 900 1 // 900内,有1条写入,则产生快照 save 300 1000 // 如果300 ...

  7. Redis 持久化配置(兼论瞎翻译的问题)

    redis.conf 文件中配置 save 默认配置项: save save save 查了好几个地方都是这么说的: 第一句的意思:15分钟内修改了一个键就保存??? 往 Redis 里加了一个值,重 ...

  8. redis RDB快照和AOF日志持久化配置

    Redis持久化配置 Redis的持久化有2种方式   1快照  2是日志 Rdb快照的配置选项: save 900 1      // 900内,有1条写入,则产生快照 save 300 1000 ...

  9. redis——持久化篇

    众所周知,redis是内存数据库,它把数据存储在内存中,这样在加快读取速度的同时也对数据安全性产生了新的问题,即当redis所在服务器发生宕机后,redis数据库里的所有数据将会全部丢失. 为了解决这 ...

随机推荐

  1. 一个js获取数组下标的函数

    或许,面试的时候,你可能会被问到怎么模拟字符串的indexOf()函数获取数组的下标,这里是个人实现的一个小函数,里面包含的知识点挺多的,假如是新手,看不懂的地方可以百度,这里就不做详细介绍了,当然, ...

  2. 真机远程调试 ( IOS Android 以及微信,weex)

    1.以前cordova远程调试,Android的直接连接USB后,用chrome打开chrome://inspect网址 IOS的打开Safari的developer下. 这是因为cordova的we ...

  3. Linuxb笔记

    3.登录mysql 开启MySQL服务后,使用MySQL命令可以登录.一般使用mysql -uroot -p即可.如果数据库不是本机,则需要加参数,常用参数如下:1,-h,指定ip地址,默认为loca ...

  4. XML和JSON数据格式对比

    概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...

  5. (转)SVN服务器搭建和使用(二)

    上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用. 首先打开Vi ...

  6. unrar.dll 使用实例

    /* * main.cpp * * Created on: Aug 17, 2015 * Author: smallcroco * * Discription: * 1 首先打开解压包,可以设置打开方 ...

  7. js 控制浏览器窗口大小

    //打开一个新窗口并设置其大小window.open('index.html','','width=450,height=750,location=no,menubar=no,status=no,to ...

  8. Overview of the Oppia codebase(Oppia代码库总览)

    Oppia is built with Google App Engine. Its backend is written in Python, and its frontend is written ...

  9. Java多线程开发系列之四:玩转多线程(线程的控制1)

    在前文中我们已经学习了:线程的基本情况.如何创建多线程.线程的生命周期.利用已有知识我们已经可以写出如何利用多线程处理大量任务这样简单的程序.但是当应用场景复杂时,我们还需要从管理控制入手,更好的操纵 ...

  10. MXNet学习~第一个例子~跑MNIST

    反正基本上是给自己看的,直接贴写过注释后的代码,可能有的地方理解不对,你多担待,看到了也提出来(基本上对未来的自己说的),三层跑到了97%,毕竟是第一个例子,主要就是用来理解MXNet怎么使用. #导 ...