【嘿丝儿科技】Redis可以用来做数据库吗?,讲真

作为一名科技自媒体 , 我每天有3-4个小时都泡在知乎上 , 回答各种系统推送的问题和网友提问 。
许多时候 , 这些提问都很有难度 , 解答需要花费一番心思 。 但是或许是因为隔行如隔山的原因 , 也有些时候你就会遇到比较有意思的问题 , 比如下面这个——
【嘿丝儿科技】Redis可以用来做数据库吗?,讲真
文章图片
这个话题本来不需要特别的纠结 , 答案肯定是“可以” 。 但是基于性能因素 , 许多程序员、工程师们从不同的角度给出了五花八门的回答 , 其内容包括但是不限于“数据突然暴增、数据架构迁移困难”、“海量数据备份不靠谱”、“使用场景有限”、“内存占用率太高”……总结起来就是一句话——用户对于大流量场景下 , Redis能否满足瞬时峰值压力没有信心 。
那么 , Redis内存数据库就无解了吗?其实并非如此 。
为什么我们需要Redis内存数据库
如今我们处在数字化的时代 , 我们的一举一动、一言一行都可以变成数字化的语言 。 而在我们借助于数字化的手段、借助大数据构建精准的用户画像 , 进而推送用户感兴趣的增值业务市 , 就需要一款性能强劲、扩展性强的数据库模型 , 也就是我们今天要讨论的主角——Redis 。
【嘿丝儿科技】Redis可以用来做数据库吗?,讲真
文章图片
Redis是一个支持持久化的内存数据库 , 可以提供5种不同类型的数据结构 , 各式各样的问题都可以很自然地映射到这些数据结构上 。 除此之外 , 通过复制、持久化和客户端分片等特性 , 用户可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统 。
也就是说 , Redis基于内存进行数据存取的机制 , 能提供比固态盘更高的数据吞吐带宽和更低的数据处理延时 , 使得数据处理的速度得到大幅度提升 。 但是“代价”也显而易见 , 那就是Redis对于内存容量的依赖 。 DRAM内存的单条容量限制 , 以及DRAM内存价格的上涨 , 令单节点大容量内存配置的实现非常困难 , 也让Redis的应用成本先天就居高难下 。
这也就出现了我们文章开头提到的问题——业界很认可Redis内存数据库的优势 , 但是在巨大的成本特别是互联网瞬息万变的峰值流量冲击下 , 如何保证Redis内存数据库的稳定运行、如何能够满足任意时刻的压力需求 , 就成为摆在数据库管理者和运维人员面前的关键问题:必须要到一款价格适中、性能强大、瞬时响应、可靠稳定的设备来承担流量压力的重任 。 而所有上述的用户痛点都指向了一款产品——英特尔傲腾持久内存 。
它来了 , 它来了 , 它带着神器走来了
英特尔傲腾持久内存 , 原名叫做“英特尔傲腾数据中心级持久内存” , 英文叫做OptaneDCPersistentMemory 。 在英特尔定义的存储家族中 , 它是当之无愧的性能王者 , 也是系统中仅次于CPU缓存、内存的高性能存在 。
【嘿丝儿科技】Redis可以用来做数据库吗?,讲真
文章图片
这张图可以更好的体现英特尔傲腾持久内存在家族中的地位 。 我们看到在这座“金字塔”中 , 蓝色部分是内存与存储的相关内容 , 而其中最上层的就是英特尔傲腾持久内存 , 它的主要作用就是替代内存 , 提升系统性能——在传统DRAM和块存储(固态盘和旋转型磁盘)之间提供了一个大容量持久内存层 , 以较高的性价比提供出色的性能 。
【嘿丝儿科技】Redis可以用来做数据库吗?,讲真
文章图片
英特尔傲腾持久内存
这种特性得益于英特尔傲腾持久内存所具备的APPDirect模式和内存模式两种“身份”——在AppDirect模式 , 经过专门调试的应用程序可从产品固有的持久性中充分获取价值并获得更大的容量;而在内存模式下 , 英特尔傲腾持久内存在受支持的操作系统或虚拟环境中运行的应用程序可直接扮演内存身份 , 最高容量可达512GB 。