redis内存淘汰和持久化_redis 持久化
一、RDB持久化
(一)、RDB介绍
可以在指定的时间间隔内生成数据集的 时间点快照(point-in-time snapshot),新快照会覆盖老快照
(二)、优点
压缩格式,恢复速度快,适合于用做备份,主从复制也是基于RDB持久化功能实现的
(三)、缺点
不是实时的,会有数据丢失,操作比较重量
(四)、原理
(五)、配置方法
第一步:修改配置文件
vim /data/6379/redis.conf
#添加
dir /data/6379 #持久化文件存储位置
dbfilename dump.rdb #RDB持久化数据文件
save 900 1 #900秒内如果有一次变更则进行一次持久化
save 300 10 #300秒内如果有10次变更则进行一次持久化
save 60 10000 #60秒内如果有10000次变更则进行一次持久化
第二步:重新启动redis
redis-cli -a 123456 shutdown
redis-server /data/6379/redis.conf
注意事项
1、没配置save参数时
1.shutdown/pkill/kill都不会持久化保存
2.可以手动执行bgsave
3、配置save参数时
1.shutdown/pkill/kill均会自动触发bgsave持久化保存数据
2.pkill -9 不会触发持久化
3、恢复时
1.持久化数据文件名要和配置文件里定义的一样才能被识别
2.RDB文件只有一个数据文件,迁移和备份只要这一个RDB文件即可
二、AOF持久化
(一)、AOF介绍
AOF(append-only log file):记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集
AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾
(二)、优点
可以最大程度保证数据不丢
(三)、缺点
日志记录量级比较大,持久化时间较长
(四)、原理
(五)、配置方法
第一步:修改配置文件
vim /data/6379/redis.conf
#添加
appendonly yes #开启AOF持久化
appendfilename "redis.aof" #持久化存储文件
appendfsync always #每次操作成功都执行一次持久化
#或者 建议设置
appendfsync everysec #每秒钟提交一次持久化
#或者
appendfsync no #不进行持久化
第二步:重启redis
redis-cli -a 123456 shutdown
redis-server /data/6379/redis.conf
(六)、AOF重写机制
1、重写机制原理
(1)redis主进程通过fork创建子进程
(2)子进程根据当前redis内存中的数据生成数据库重建命令序列到临时文件中
(3)父进程继承client的新请求,把请求中的写操作继续追加至原来的AOF文件(而不是直接写入临 时文件,避免写操作失败带来的问题);额外地,这些新的写请求还会被放置于一个缓冲队列中
(4)子进程重写完成,会通知父进程,父进程把缓冲中的命令写到临时文件中
(5)父进程将临时文件替换掉旧的AOF文件
2、重写机制注意事项
和RDB一样,如果当前的数据量巨大,那么创建子进程的过程会很耗时。
在大数据的处理工作中,文件的删除也是一项比较麻烦的工作。
像我们普通的笔记本电脑,删除一个几GB的文件都是一项很耗时的工作,
更何况大数据的量级远远大过我们日常使用的数据。
所以在替换aof文件时,如果旧的aof很大,删除它也是一个很耗时的过程。
当然这并不是aof或者redis的缺点,只是可能会出现的一个客观情况
AOF注意事项
1.aof修复命令不要⽤,因为他的修复⽅案⾮常粗暴,⼀⼑切,从出错的地⽅到最后全部删除
2.任何操作之前,先备份数据
三、redis 持久化方式有哪些?有什么区别?
rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能
aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog
四、save bgsave 区别?
共同点:都能实现redis持久化功能。
不同点:
SAVE: 前台,阻塞redis正常写入,直到持久化完成。
BGSAVE:后台,开启子线程,异步的持久化功能,不会阻塞redis正常写入。
五、AOF和RDB如何选择
1.开启混合模式
2.开启aof
3.不开启rdb
4.rdb采⽤定时任务的⽅式定时备份
5.可以从库开启RDB进⾏备份
redis内存淘汰和持久化_redis 持久化相关推荐
- redis aof 备份和恢复_Redis 持久化机制的介绍,了解这些流程很重要
我们已经知道对于一个企业级的redis架构来说,持久化是不可减少的. 企业级redis集群架构:海量数据.高并发.高可用 持久化主要是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去,比如你r ...
- Redis内存淘汰机制
Redis内存淘汰机制 网趣科技 2016-09-06 13:26 摘要 Redis是一款优秀的.开源的内存数据库,我在阅读Redis源码实现的过程中,时时刻刻能感受到Redis作者为更好地使用内存而 ...
- Redis内存淘汰策略LRU、LFU详解
Redis内存淘汰原因 Redis是一种内存数据库,redis的容量往往有限,无法存放所有的数据.当内存满了的时候,并且这个时候还需要往Redis中放入新的数据,就需要将Redis中的一部分数据淘汰了 ...
- redis内存淘汰和持久化_REDIS的淘汰机制与持久化
1. 理解淘汰机制 1.1. 内存回收策略 Redis内存回收机制主要体现在以下两个方面: 1. 删除到达时间的键对象. 2. 内存使用达到maxmemory上限时触发内存溢出控制策略. 1.1.1. ...
- redis 怎么关闭写盘_Redis持久化策略
全是干货的技术号: 本文已收录在github,欢迎 star/fork:https://github.com/Wasabi1234/Java-Interview-Tutorial Redis 对外提供 ...
- redis 设置不过期_面试时 Redis 内存淘汰总被问,但是总答不好,怎么解决?
什么是内存淘汰 内存淘汰,和平时我们设置redis key的过期时间,不是一回事:内存淘汰是说,假设我们限定redis只能使用8g内存,现在已经使用了这么多了(包括设置了过期时间的key和没设过期时间 ...
- Redis内存淘汰策略
目录 一.Redis六种淘汰策略 二.如何配置Redis淘汰策略 将Redis用作缓存时,如果内存空间用满,就会自动驱逐老的数据. 一.Redis六种淘汰策略 noeviction:当内存使用达到阈值 ...
- 怎么让修改的html持久化_redis持久化机制
redis 有 RDB 和 AOF 两种持久化机制,这两种机制可以共存. 可以通过修改redis.conf配置文件中的 dir 参数来改变生成的 dump.rdb 和 appendonly.aof 这 ...
- 高性能分布式缓存redis(持久化原理 安全策略 过期删除内存淘汰策略 性能压测 高可用 Redis Cluster)
redis redis(持久化原理 安全策略 过期删除&内存淘汰策略 性能压测 高可用 Redis Cluster) 1. 持久化原理 1.1 持久化流程(落盘) 1.2 RDB详解 1.2. ...
最新文章
- 突破电信3G宽带对网页浏览的上网限制
- 34 个火爆全网的Python开源框架
- 【Kali渗透全方位实战】利用Beef进行XSS会话劫持(XSS Stored)
- ecmall类关系图(转)
- SAP CRM点了附件的超链接后报错的处理方式
- System.Windows.Forms.Timer与System.Timers.Timer的区别
- 【软件开发底层知识修炼】二十三 ABI-应用程序二进制接口三之深入理解函数栈帧的形成与摧毁
- nginx php分离,nginx-php配置动静分离
- java反射用法示例_Java包| 类型,用法,示例
- 初学总结--------Java修饰符与修饰关键字(且叫修饰关键字)
- 在学习js的然后写代码的过程中我老是找不到思路怎么办?
- 命名参数_告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
- 俄罗斯方块c语言教程codeblocks,C语言俄罗斯方块修改结尾
- [转]NHibernate中DateTime,int,bool空值的处理方法
- 计算机卡死后自动关机,电脑经常卡住自动关机怎么办
- [每日一氵]笔记本电脑充电后卡得一批
- 加工奶制品的生产计划 lingo代码
- Invoking “make cmake_check_build_system“ failed
- JAVA--建立一个可输入个人信息的窗口
- Mysql 中使用UUID做为主键,去掉- 横线
热门文章
- 编写一个C程序,实现以下功能:动态申请长度为5的整数空间数组,用户输入5个整数;动态扩展数组空间为8,用户另外输入3个整数,最后输出扩展后的全部数组元素。
- html添加子节点方法,HTML DOM appendChild() 方法
- arraylist数据5万占内存_2021年北京市高考报名人数会超过5万吗?大数据告诉您结果...
- qt编写触摸事件的关键
- Python 条件判断 if/else - Python零基础入门教程
- linux登录界面输入密码时卡住6,centos6.8(虚拟机VNC)输入正确用户名和密码仍跳回登录界面...
- html自动图片尺寸,关于html:CSS背景图像适合宽度,高度应按比例自动缩放
- asyncio oracle 异步,带有asyncio futures和RuntimeError的InvalidStateError与aiohttp时使用期货回调...
- linux创建a1的硬链接a2,Linux命令-重定向和软硬链接
- 卸载 windows_Windows 10可能很快会自动卸载有问题的Windows更新