redis持久化机制和内存管理
redis持久化方式有两种:RDB方式和AOF方式
1、RDB方式:内存快照,在指定的时间间隔对数据进行快照存储,支持在客户端直接BGSAVE或者SAVE命令来创建一个内存快照,BGSAVE会fork一个子进程将快照写入磁盘,父进程仍可处理其它命令,SAVE则执行过程中不处理其它命令;在redis.conf可以调整save配置选项来设置持久化的触发策略,当在规定时间内Redis发生了写操作的个数满足设定的条件触发持久化。
2、AOF方式:记录每次对服务器的写操作,当服务器重启时会重新执行这些命令来恢复数据,通过在redis.conf中配置appendonly yes开启AOF方式 ,通过调整appendsync参数来设置同步的策略
RDB方式优点:对性能影响小、恢复数据快,缺点:会丢失数据、fork子进程会影响提供服务的能力。
AOF方式优点:安全、可容灾、可读 缺点:文件体积大、性能损耗、数据恢复慢
redis内存管理
在redis.conf中通过maxmemory 来配置最大内存,通过maxmemory-policy来配置到达阈值的策略,可选策略如下
其中LRU (最近最少使用) 根据数据的历史访问记录来淘汰数据,LFU(历史访问次数),历史访问频率来淘汰数据,具体可参考redis官网。
reids还可以配置内存压缩 ,通过配置各个数据结构的最大值来对数据进行压缩,节省空间。
redis数据过期策略
1、主动处理,每秒执行10次,从设置有过期时间的key中随机找20个,删除已经过期的,如果有超过25%的过期,则重新再执行一次。
2、被动处理 每次访问时检查是否过期,过期则删除,在数据恢复时候。
数据恢复时过去数据的处理
1、RDB 方式 过期的key不会持久化,载入期间,过期的key会通过主动或者被动被删除掉
2、AOF方式每次遇到过期的key时会追加一条del命令,恢复时顺序执行命令时就会删除过期的key
最新文章
- AndroidStudio NDK配置使用以及错误集合
- ubuntu12.04 安装mac主题
- 1、基于MFC的OpenGL程序
- swiper 增加同页面增加2个滚动
- 关于scrollbar-face-color只支持ie的解决办法!
- javascript去掉字符串前后空格
- 有直接运行的runas命令,XP就有
- 使用C++读取UTF8及GBK系列的文本方法及原理
- IDataParameter[]
- JS中内嵌函数中this关键字的使用
- 一致性hash
- Oracle安装及使用入门
- Mysql彻底卸载
- selenium 对https网站(加密证书)进行自动化测试
- Eclipse 版本选择
- python中sqlite问题和坑
- linear-gradient常用实现效果
- MQTT协议-MQTT协议解析(MQTT数据包结构)
- [模板][P3377]左偏树
- Android资源收集
热门文章
- 梯度裁剪(Clipping Gradient):torch.nn.utils.clip_grad_norm
- nginx 平滑重启的实现方法
- 辨析Java方法参数中的值传递和引用传递
- semantic ui要装什么才能使用
- 2019_软工实践_Beta收官
- 【转】使用fastboot命令刷机流程详解
- Authenticator App 两步验证会不会造成亚马逊账号关联?
- 【深入学习linux】系统分区与格式化
- libusb: android上集成libusb库
- gmake: Nothing to be done for `all'.