Redis的持久化
Redis的持久化有两种方式:
- RDB方式(默认支持):在指定的时间间隔内将内存中的数据集快照写入磁盘
- 优势
- 整个Redis数据库将只包含一个文件,对于文件备份来说是完美的,系统出现灾难性的故障时容易恢复
- 性能最大化,开启服务器时,只需要做的是分叉出一些进程,再由子进程来完成持久化操作,极大的避免服务器进程执行IO流操作。数据集很大时,比AOF启动更高效
- 劣势配置
- 在保持数据的高可用性时(最大限度的避免数据丢失),RDB不是好的选择。系统一定在定时持久化之间出现宕机时,还没有来得及往硬盘上写时,数据就已经丢失
- RDB通过分叉方式的子进程来协助完成数据持久化操作,因此在数据集很大时,可能导致整个服务器停止几百ms甚至1s
- 在redis.conf中的
save 900 1 每900s 至少1个key发生变化
save 300 10 每300s 至少10个key发生变化
save 60 10000 每60s至少10000个key发生变化
满足以上,会写入一次 - 在redis.conf的:RDB的默认文件名 dbfilename dump.rdb
保存路径:dir ./ AOF方式:将以日志的形式记录服务器的每一个操作,在服务器启动时会读取该文件来重新构建数据库,保证启动后数据库中的数据是完整的
- 优势
- 数据更高的安全性
- Redis提供三种同步策略:每秒、每修改(同步持久化,效率最低最安全)、不同步
- 对日志的写入操作采用append追加方式,在写入时即使出现宕机,也不会破坏日志文件中已经存在的内容(若一次操作只写入了一半数据就系统崩溃,在Redis下次启动之前使用redis -check -aof来解决数据一致性问题)
- 如果日志过大,Redis会自动启动重写机制,以append方式不断将修改的数据写入到老的磁盘当中,同时还会创建一个新的文件,来记录此期间产生的哪些修改命令被执行。在进行重写切换时,可以更好的保证数据的安全性
- AOF包含一个格式清晰易于理解的日志文件用于记录所有的修改操作(可以用它来完成数据的重建)
- 数据更高的安全性
- 劣势
- 对于相同数据量的数据集,AOF的文件比RDB的更大
- 根据同步策略的不同,AOF的运行效率低于RDB
- 配置
- redis.conf的
- appendonly no变为yes
会产生appendfilename "appendonly.aof" - #appendfsync always每修改一次同步
appendsync everysec每秒同步
#appendfsync no不同步
- appendonly no变为yes
- redis.conf的
- 若误删数据,通过修改appendonlu.aof文件中的命令,再重新启动来恢复数据
Redis的持久化的更多相关文章
- Redis总结(四)Redis 的持久化
前面已经总结了Redis 的安装和使用今天讲下Redis 的持久化. redis跟memcached类似,都是内存数据库,不过redis支持数据持久化,也就是说redis可以将内存中的数据同步到磁盘来 ...
- Redis的持久化的两种方式drbd以及aof日志方式
redis的持久化配置: 主要包括两种方式:1.快照 2 日志 来看一下redis的rdb的配置选项和它的工作原理: save 900 1 // 表示的是900s内,有1条写入,则产生快照 save ...
- redis启用持久化
redis的持久化有rdb和aof两种. rdb是记录一段时间内的操作,一盘的配置是一段时间内操作超过多少次就持久化. aof可以实现每次操作都持久化. 这里我们使用aof. 配置方式,打开redis ...
- redis + 主从 + 持久化 + 分片 + 集群 + spring集成
Redis是一个基于内存的数据库,其不仅读写速度快,每秒可以执行大约110000的写操作,81000的读取操作,而且其支持存储字符串,哈希结构,链表,集合丰富的数据类型.所以得到很多开发者的青睐.加之 ...
- Redis笔记(八)Redis的持久化
Redis相比Memcached的很大一个优势是支持数据的持久化, 通常持久化的场景一个是做数据库使用,另一个是Redis在做缓存服务器时,防止缓存失效. Redis的持久化主要有快照Snapshot ...
- 深入剖析 redis AOF 持久化策略
本篇主要讲的是 AOF 持久化,了解 AOF 的数据组织方式和运作机制.redis 主要在 aof.c 中实现 AOF 的操作. 数据结构 rio redis AOF 持久化同样借助了 struct ...
- 深入剖析 redis RDB 持久化策略
简介 redis 持久化 RDB.AOF redis 提供两种持久化方式:RDB 和 AOF.redis 允许两者结合,也允许两者同时关闭. RDB 可以定时备份内存中的数据集.服务器启动的时候,可以 ...
- redis 数据持久化
1.快照(snapshots) 缺省情况情况下,Redis把数据快照存放在磁盘上的二进制文件中,文件名为dump.rdb.你可以配置Redis的持久化策略,例如数据集中每N秒钟有超过M次更新,就将数据 ...
- redis的持久化之AOF
AOF Redis 分别提供了 RDB 和 AOF 两种持久化机制: RDB 将数据库的快照(snapshot)以二进制的方式保存到磁盘中. AOF 则以协议文本的方式,将所有对数据库进行过写入的命令 ...
- redis的持久化方式RDB和AOF的区别
1.前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据.由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能, ...
随机推荐
- connect socket的超时设置
最近项目中,有个需求是检测某ip地址是否是通的,使用了socket的connect函数.但是,当ip地址写错的话,connect就会一直阻塞在那里,大概2.3分钟才能返回连接失败.这对于用户来说是不可 ...
- vue_小项目_模糊搜索(列表过滤)_结果排序
html <div id="test"> <label> <input type="text" v-model="sea ...
- c语言二级指针内存模型
第一种: 指针数组作为输入参数 char *myArray[] = {"aaaaaa", "ccccc", "bbbbbb", " ...
- RxSwift + Moya + ObjectMapper
https://www.jianshu.com/p/173915b943af use_frameworks! target 'RXDemo' do pod 'RxSwift' pod 'RxCocoa ...
- Autofac之生命周期和事件
Autofac为注册的类型对象提供了一套生命周期事件,覆盖了一个类型从注册到最后“释放”的一套事件.有了这些事件,我们可以相对方便的在类型对象的各个阶段进行AOP操作. builder.Registe ...
- bug和注意事项
bug: 1.新增角色,在选择权限树的时候,如果不选择根目录下的第一个节点,保存后,权限树会打不开. 2.文档页面有两个大字段,即ueditor编辑器的时候,保存后回显会有问题 不过一个页面有两个大文 ...
- 判断为false的情况
console.log(''==false) //true console.log('0' == false) //true console.log(null == false) //false, ...
- RoR - More Active Record
Active Record Scope: default_scope: 默认的检索方式 #Use unscoped to break out of the default class Hobby ...
- python pip出错问题解决记录
今天安装一下requests模块,遇到网络问题 pip install requests Retrying (Retry(total=4, connect=None, read=None, redir ...
- 9、Flutter 实现 生成二维码
1.加入依赖 在 pubspec.yaml 中 dependencies 节点下添加: dependencies: qr_flutter: ^ 2.引入代码 在需要细线二维码的 dart 类中引入依赖 ...