baihongyu.com
博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis 持久化机制
阅读量:
6341 次
发布时间:
2019-06-22
本文共 691 字,大约阅读时间需要 2 分钟。
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82876657
对于如何将数据类型持久化存储,Redis 提供一下 4 种方式
更多精彩
更多技术博客,请移步
定时快照 snapshot
实现
在 Redis 内存的一个定时器事件,每隔一段时间就检查数据是否符合定时快照触发的条件
若触发则创建一个子进程,默认与父进程共享地址空间,再通过子进程遍历整个内存进行存储操作
缺陷
只能存储一段时间内的内存信息,若系统重启则会丢失上次快照与重启间的数据
基于语句的追加文件 aof
实现
每条使 Redis 内存数据发生改变的的命令都会被存储到一个 log 文件中
最终该 log 文件中存放的就是 Redis 的持久化数据
缺陷
过多的 log 文件导致数据体积过大,当系统重启后再次加载数据时会比较慢
数据加载慢并不是因为读取速度慢,而是因为 log 中的每条命令都会需要在 Redis 中再次执行
由于每条命令都要写入 log ,所以会导致 Redis 的性能下降
虚拟内存 vm -
已弃用
实现
用户空间数据换入换出
缺陷
代码复杂
重启慢
Diskstore
实现
弃用虚拟内存后采用的新方式,实际上是使用传统的 B-tree 格式存储数据
总结
采用合适的数据类型存储数据,并尽可能使用紧凑存储参数
当业务场景无需持久化时,关闭所有的持久化机制可获得更好的性能及最大的内存使用量
不要让 Redis 使用的物理内存超过服务器的 3/5
你可能感兴趣的文章
WinCE API
查看>>
SQL语言基础
查看>>
Linux常用基本命令[cp]
查看>>
CSS 相对|绝对(relative/absolute)定位系列(一)
查看>>
关于 Nginx 配置 WebSocket 400 问题
查看>>
Glide和Govendor安装和使用
查看>>
Java全角、半角字符的关系以及转换
查看>>
Dubbo和Zookeeper
查看>>
前端项目课程3 jquery1.8.3到1.11.1有了哪些新改变
查看>>
UOJ#179. 线性规划(线性规划)
查看>>
整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)
查看>>
windows的服务中的登录身份本地系统账户、本地服务账户和网络服务账户修改
查看>>
JAVA中循环删除list中元素的方法总结
查看>>
redis 安装
查看>>
SQL some any all
查看>>
电子书下载:Programming Windows Identity Foundation
查看>>
有理想的程序员必须知道的15件事
查看>>
用于测试的字符串
查看>>
财付通和支付宝资料收集
查看>>
理解 IEnumerable 与 IEnumerator
查看>>