当前位置:网站首页>Redis趋势—NVM内存
Redis趋势—NVM内存
2022-06-25 18:01:00 【Java面试365】
Redis趋势—NVM内存
NVM是什么
NVM全称Non-Volatile Memory非易失的存储,NVM的特点就是容量大、速度快、支持持久化数据,这个特性和Redis追求的目标不谋而合,所以在实际使用Redis时可以将NVM当作内存DRAM使用。
NVM内存特性
NVM内存和传统的DRAM内存相比有哪些优势呢?
NVM内存可以直接持久化保存数据,数据保存在NVM内存后,即使发生断电或者宕机,数据依然会保存在NVM内存中,而传统的DRAM内存遇到断电或者宕机就会导致DRAM内存数据丢失。
NVM内存的访问速度接近DRAM的速度,记住这里是接近而不是超过,NVM内存的读延迟大概200~300ns,写延迟大概100ns。
NVM内存的容量很大,NVM器件密度很大,单根NVM内存条能达到128G的容量最大甚至可以达到512G,所以我们可以采用NVM内存轻松构建TB级别的内存。
NVM产品AEP内存
现在业界就有NVM内存产品,Intel在2019年4月推出Optane AEP 内存条(简称 AEP 内存),AEP内存给软件提供了两种使用模式,这两种模式的偏重点分别在NVM容量大,持久化保存数据上。
Memory模式,这种模式就是将NVM当作大容量的内存使用,这个模式并不会开启持久化的功能,那是不是说采用了Memory模式就不需要DRAM传统内存了呢?并不是服务器仍然需要配置DRAM内存,但是DRAM内存会被当作AEP内存的缓存使用,DRAM的内存空间对于应用软件不可见,应用软件使用的将会是AEP的内存空间。
APP Direct模式,这种模式将NVM当作了一个持久化的内存使用,也就是说应用软件将数据写到AEP内存上时,数据就直接被持久化保存下来了,这也叫做持久化内存(Persistent Memory简称PM)。
Redis采用AEP内存的优势
Redis如果采用AEP内存作为存储,那么需要分模式考虑
Memory模式
Redis采用Memory模式那么就是利用其容量大的特性来保存大量数据,Redis也可以给业务提供大容量的存储,Redis可以像在DRAM内存运行一样不需要修改代码。
但需要注意的是AEP内存的访问延迟肯定会比传统DRAM内存高,因为AEP本来就是NVM的一个实现,NVM存在访问和读写延迟,所以我们需要在读写延迟以及大容量上做一个取舍。
APP Direct模式
Redis去应用APP Direct模式后,那么写入AEP内存的数据将会自动持久化保存,这时候就不需要Redis的一些持久化机制了,因为不论是AOF还是RDB持久化方式,都会有丢失数据的风险,而且持久化操作时还可能引发一些问题
RDB持久化时,fork子进程会阻塞主线程。
AOF文件记录日志时,需要在可靠性和写性能之间做取舍,一般建议折中选择everysec。
AOF和RDB文件恢复数据时,恢复速度受RDB文件和AOF文件的大小限制。
所以在APP Direct模式下就可以充分利用PM持久化内存的特点,避免Redis自身持久化产生的一些问题。
边栏推荐
- 什么是泛型以及在集合中泛型的使用[通俗易懂]
- 智能对话01-redis的安装
- 【 NLP 】 in this year's English college entrance examination, CMU delivered 134 high scores with reconstruction pre training, significantly surpassing gpt3
- Time series analysis of data mining [easy to understand]
- Deep understanding of ELF files
- container of()函数简介
- SQL Server实时备份库要求
- Agent white paper - jointly build agents and create the wisdom of the whole scene | cloud library No.21 recommendation
- 微博评论的计算架构
- QT generate random numbers (random strings) within the specified range
猜你喜欢
解析数仓lazyagg查询重写优化
移动端异构运算技术 - GPU OpenCL 编程(基础篇)
Three traversal methods of binary tree (recursive + non recursive) complete code
20 provinces and cities announce the road map of the meta universe
微服务介绍
A simple and easy-to-use graph visualization tool developed recently
[tips] how to quickly start a new position for a new software testing engineer
Garbage collector and memory allocation strategy
How Jerry used to output a clock source to the outside world [chapter]
158_模型_Power BI 使用 DAX + SVG 打通制作商业图表几乎所有可能
随机推荐
智能体白皮书 - 共建智能体,共创全场景智慧 | 云享书库NO.21推荐
The Stackies 2022:32个营销技术栈入选
VSCode /**生成函数注释
Expressing integers by the sum of consecutive natural numbers
How to open a stock account is it safe to open an account
MVDR beam MATLAB, MVDR beam forming matlab[easy to understand]
微服务介绍
视频制作素材网站整理
什么是算子?
十大证券公司哪个佣金最低 办理开户安全吗
喜报|海泰方圆通过CMMI-3资质认证,研发能力获国际认可
Android物联网应用程序开发(智慧园区)—— 图片预览界面
一些常用的知识点积累
QT generate random numbers (random strings) within the specified range
Which is better and safer, GF easy gold rush or compass
华为云GaussDB(for Redis)揭秘第19期:GaussDB(for Redis)全面对比Codis
conda 修改镜像源
近来开发的一款简单易用的图可视化工具
解析数仓lazyagg查询重写优化
RuntimeError: Trying to backward through the graph a second time (or directly access saved variable