暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

对Redis的性能不满意?换成Aerospike之后的超惊喜

Aerospike服务号 2022-01-17
382

2022年年初西安“一码通”再次崩溃,半个月两次崩溃引发了业界关注。不少技术人员对系统崩溃的原因进行了初步分析,大的原因应该是流量过大、系统架构应对高并发能力不足,具体原因比较多,其中一个可能是缓存被穿透或击穿,流量直接打到数据库,引发数据库崩溃。

实际上,因为系统设计不合理,使得缓存不能发挥屏蔽作用,导致流量直接穿透到数据库而致使数据库崩溃并不少见。


在现代互联网应用系统,缓存+数据库已经成为普遍采用的系统架构,这也是互联网应用与传统企业应用的一个明显不同。传统企业应用的访问量有限并且可以比较准确预测,因此,可以直接将访问请求发送到数据库处理,而互联网应用访问量并发访问量高,且很难准确预测,一般会加上缓存。


三个新挑战 持久优化首当其冲


如果没有缓存数据库,完全由数据库直接面对访问请求,会带来高昂的硬件成本。


缓存将数据保存在内存中,其查询性能比数据库高得多,因此借助缓存可以极大地缓冲数据库的压力。而数据库的数据保存在磁盘和SSD等存储介质中,需要经过优化器、SQL引擎的处理,应用取得数据的路径比缓存长得多,时延自然也长。而且缓存相比数据库更容易进行分布式部署,缓存的负载和性能也更容易平行扩展和增加。因此,在访问量大且对时间敏感的应用中,缓存数据库被广泛采用,其中又以Redis部署得最为普遍。


然而,在数据库前加入了缓存,也给系统带来了新的复杂性。


挑战之一缓存数据的持久化问题,缓存的数据保持在内存中,如果掉电就会全部丢失,为了防止缓存中的数据丢失,缓存数据库会采取一些数据持久化的办法,比如Redis可以通过RDB(快照)和AOF(数据附加)两种方法进行持久化,但这两种方法都很难保证数据不丢失,而且会影响系统性能。


挑战之二成本。随着数据量的增加,需要更大的内存容量,而内存的成本要比SSD和磁盘昂贵。互联网应用的数据增长得很快,导致成本也会快速增加。


挑战之三缓存和数据库数据的一致性问题,当数据更新时是先更新缓存还是数据库,来保证外部应用能获取最新数据。同时,缓存中要保存哪些数据、保存时间多久,以尽可能规避缓存穿透和击穿等问题,这些都要精心考虑。


是否有办法既能保证系统的高性能、高并发能力同时也能降低TCO(总体拥有成本)?答案是肯定的,Aerospike就是一个不错的选择。


更低成本 更高速度 减轻运维压力


Aerospike是一个高性能、可扩展、可靠性强的NoSQL数据库。它支持以内存和SSD作为存储介质,并专门针对SSD特殊优化,主要用于数百GB、数TB级大数据量,且在高并发情况下对性能有毫秒读取要求的场景。目前在互联网广告行业(比如实时竞价等)等实时计算领域有广泛应用。


Aerospike的一大突出优势是同时兼具数据库和缓存两种产品特性,换而言之,其既具有数据库的数据持久化能力,同时具有缓存的高并发、低时延特性,是一种更低成本的高性能数据库解决方案,作为替代方案出现在Redis的各种应用场景中。


混合架构:在与Redis的竞争中让Aerospike胜出的一项关键技术就是Aerospike获得专利的混合架构。所谓混合架构就是内存和SSD混合部署,这也是Aerospike的典型部署方式:其索引完全在内存中(不持久化),数据仅存储在持久性存储 (SSD) 上并直接从SSD中读取。访问索引不需要经过SSD,而 SSD 中 I/O 的读取延迟特性是相同的,无论是随机的还是顺序的,从而实现可预测的性能。


独特优化技术:通过内存和SSD的结合,再加上一系列独特的优化技术(比如Aerospike 会绕过操作系统的文件系统,直接从闪存中读取数据),使得混合内存架构中数据的访问性能达到亚毫秒级,接近全内存的访问性能。


全面减低企业成本:各种测试表明,Aerospike能保证99%的操作在1毫秒内完成,还能支持超大规模数据集(100T级别)的存储,目前已经上线的系统最大数据集达到了3PB。而与数据全部放到内存的Redis相比,Aerospike成本会极大的降低(因为大部分数据放在比内存更为便宜的SSD盘上)。


节约企业成本:Aerospike的混合内存系统还可以显着减少节点数量,通常只需要不到 NoSQL 和关系数据库 1/5数量的服务器。仅此一项就可以为企业节省不小的开支,更不用说减少服务器扩展、更轻松地维护和更少的运营支出。


减轻运维负担:另外,其动态(自我修复)集群管理允许 Aerospike 轻松横向扩展,保证99.999%或更高的可靠性,并在节点丢失时重新平衡,而无需大量的手动管理。同时,Aerospike还支持AMC控制台、API等多种监控方式,有集群QPS、健康度、负载等多项监控指标,对运维非常友好,相比Redis运维成本也能大大降低。


多线程:Aerospike与Redis相比另一个显著优势是Aerospike是多线程的,这就意味着Aerospike支持Scale out,可以直接从更高性能的设备中受益。



小结


鉴于Aerospike与Redis相比这些显著优势,目前不少用户从原来的Redis迁移到Aerospike。


实际上,这种迁移是非常容易的,同为KV类型存储,Aerospike提供多种数据类型,其操作方式和Redis比较类似,而且Aerospike也提供了一些工具,可以很容易地从Redis迁移到Aerospike。从而帮助企业更早享受Aerospike带来的技术红利。


如果有迁移和部署Aerospike数据库的相关问题,可以访问Aerospike的官网或者直接留言。


关于Aerospike

Aerospike突破了数据瓶颈,以独特的专利技术降低了基础架构的复杂性,节省了传统 NoSQL数据库的运营和运维成本,被广泛应用在反欺诈、在线广告、在线交易以及金融等领域。


当前,Aerospike在同类数据库中脱颖而出,成为数百万客户的首选。Aerospike可为客户提供一对一的个性化服务,全面支持客户数字化转型升级。


猛戳左下角“阅读原文”,既可以下载社区版本,也可以随时提问。





文章转载自Aerospike服务号,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论