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的持久化功能, ...
随机推荐
- poj1207 3n+1 problem
The 3n + 1 problem Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 60496 Accepted: 19 ...
- idea 常用快捷键
=============intellij idea 快捷键============= ctrl+] 诸如{}围起来的代码块,使用该快捷键可以快速跳转至代码块的结尾处 ctrl+[ 同上,快速跳至代码 ...
- Linux下卸载Oracle 11g
第一种方法: 使用oracle自带的runInstaller 卸载 [oracle@VM_0_14_centos deinstall]$ cd $ORACLE_HOME [oracle@VM_0_14 ...
- 九、JSP入门(2)
day12 JSP指令 1 JSP指令概述 JSP指令的格式:<%@指令名 attr1=”” attr2=”” %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的. JSP中 ...
- javascript的数组之push()
push()方法讲一个元素或多个元素添加到数组的末尾,并返回新数组的长度length,修改数组自身. var numbers = [1, 2, 3]; numbers.push(4); console ...
- vue发送请求---fetch-jsonp
fetch-jsonp和axios类似,都是第三方插件返送请求,而vue-resource是vue官方提供的请求插件 前两个哪个组件使用就在那里引入,vue-resource直接在vue的main.j ...
- 遍历其 interator
当用户自定义数据结构的时候, 如果做遍历呢, 这个时候就需要遍历器 interator 了, 它允许用户定义遍历自己自定义数据结构的方式 当用户定义了iterator, 就可以使用 for of 来遍 ...
- qss qt按钮自定义
- NodeJS笔记(六)-Express HTTP服务器启动后如何关闭
npm start启动网站,提示“3000”端口已经被使用的问题 nodejs WEB服务器并不随着cmd的关闭而终止 查看任务管理器可以看到nodejs的启动进程 可以手动关闭 如果是一直处于cmd ...
- Libvmi实现分析
LibVMI是一个专注于读写虚拟机内存的自省库,它能够监视虚拟机底层的运行细节并将其还原.LibVMI支持对Xen及KVM虚拟化平台上的运行虚拟机进行自省操作,针对KVM虚拟化平台,LibVMI对QE ...