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. css3图片翻转

    <!DOCTYPE> <html lang="en"> <head> <meta http-equiv="Content-Typ ...

  2. LeetCode Design Hit Counter

    原题链接在这里:https://leetcode.com/problems/design-hit-counter/. 题目: Design a hit counter which counts the ...

  3. 零基础学WEB前端-CSS

    CSS指层叠样式表(Cascading Style Sheets),CSS 是标准的布局语言,用来控制元素的尺寸.颜色.排版.CSS 由 W3C 发明,用来取代基于表格的布局.框架以及其他非标准的表现 ...

  4. 只需三步--轻松反编译Android Apk文件

    安卓程序是通过java语言进行编写的,可以很容易进行反编译.很多apk文件被反编译后再二次打包,就成了自己的产品,很是流氓.下面我们来看看如何进行apk的反编译,以及常用的防反编译手段. 一.反编译A ...

  5. jQuery工具函数(转)

    原文地址:http://www.cnblogs.com/kissdodog/archive/2012/12/27/2835561.html 作者:逆心 ------------------------ ...

  6. composer [ReflectionException] Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist

    在执行composer update时报错 [ReflectionException]Class Fxp\Composer\AssetPlugin\Repository\NpmRepository d ...

  7. window虚拟机安装Linux

    Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核.Linux可安装在各种计算机硬件设备中,比如手机.平板电脑.路由器.视频游戏控制台.台 ...

  8. C语言数据类型取值范围

    一.获取数据类型在系统中的位数 在不同的系统中,数据类型的字节数(bytes)不同,位数(bits)也有所不同,那么对应的取值范围也就有了很大的不同,那我们怎么知道你当前的系统中C语言的某个数据类型的 ...

  9. 总结ThinkPHP使用技巧经验分享(二)

    循环输出volist 还有别名 iterate 模版赋值:$User = D('User')$list = $User->findAll()$this->assign('list',$li ...

  10. 改变this指针的apply,call,bind的区别

    apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. Jav ...