iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis Enterprise新版优化线性扩展,性能测试有点厉害!
  • 346
分享到

Redis Enterprise新版优化线性扩展,性能测试有点厉害!

2024-04-02 19:04:59 346人浏览 泡泡鱼
摘要

在Redis Enterprise 5.0版本中,其团队引入了对开源(OSS)集群api的支持,允许Redis Enterprise集群通过添加分片和节点以线性方式进行扩展。本文给出了第一个线性扩展基准测

Redis Enterprise 5.0版本中,其团队引入了对开源(OSS)集群api的支持,允许Redis Enterprise集群通过添加分片和节点以线性方式进行扩展。本文给出了第一个线性扩展基准测试,并展示了这种无限的线性扩展能力。

线性扩展是什么?

根据维基百科的介绍,可扩展的数据库是一个可以通过添加新的处理器和存储来升级处理更多事务数据库,并且可以在不影响使用的情况下轻松升级。数据库可以向外扩展(通过向集群添加节点,重新平衡并分配数据库)或向上扩展(通过向数据库添加分片而无需向集群添加节点)。Redis Enterprise经过优化,只需将其绑定到磁盘即可扩展。

线性扩展意味着通过添加与吞吐量相关的资源(在Redis术语中,“资源”指的是节点和分片)来顺序扩展数据库。真正的线性可扩展意味着资源量以与数据库吞吐量以相同的比例增加,并且以确定的方式增加。例如,将集群资源增加50%将导致吞吐量增加50%。

如果数据库可以线性扩展,则可以最大限度地降低运营开销并可扩展业务,而无需担心数据库中的大小限制或性能瓶颈。但是,通常会出现与扩展相关的开销,这意味着当容量增加N时,数据库吞吐量通常会增加一个比N少(或少得多)的数字。

数据库提供:

  • 亚线性扩展——当相对容量小于资源数量时。

  • 线性扩展——当相对容量等于添加资源的相对数量时。

  • 超线性扩展——当相对容量因增加资源而增加时。

Redis Enterprise的简要介绍

Redis Enterprise术语中的集群是一组云实例,虚拟机/容器节点或裸机服务器,允许创建任意数量的Redis数据库(Redis Enterprise术语中的数据库是跨多个Redis分片/实例管理整个数据集的实体,不要将此与每个Redis实例中的数据库混淆,你可以使用Redis SELECT命令在键空间中进行分段)在整个集合共享的内存池中。集群具有对称的无共享架构,数据路径与控制和管理路径之间完全分离,它包括以下主要组件:

  • Redis Shards-具有主或从的Redis实例

  • Zero-latency Proxy- 构建在多线程、无状态架构之上,负责隐藏集群的复杂性,增强安全性(SSL,身份验证,DDoS保护)并提高性能(无tcp连接管理)

  • Cluster Manager(控制和管理路径) - 由集群节点上的一组分布式进程构建,负责集群配置、响应请求、资源管理等工作,以及充当资源监视器并完全使Redis分片管理集群中其他分片的运行状况或执行故障转移。

可以在以下任何一种配置中创建Redis Enterprise集群中的数据库:

Redis Enterprise新版优化线性扩展,性能测试有点厉害!  

构建测试环境

综合各方面因素,其团队决定在AWS上构建测试环境,以验证Redis Enterprise是否能够以线性方式实现无限扩展。最终测试使用的是EC2 m4.16xlarge实例(64核,256GB RAM)用于集群节点和c4.8xlarge实例(36核,60GB RAM)用于运行memtier_benchmark,一个开源多线程负载生成工具

使用多个memtier_benchmark实例是必须的,因为在许多情况下,单Redis Enterprise节点可以处理比单memtier_benchmark实例更多的流量,这种方法可避免单个NIC网络带宽和数据每秒传输限制,并且可以逐步(逐个实例)增加流量负载。

这是其团队的最终设置:

Redis Enterprise集群节点的6x m4.16xlarge实例:

Redis Enterprise新版优化线性扩展,性能测试有点厉害!  

运行memtier_benchmark的8x c4.8xlarge实例:

Redis Enterprise新版优化线性扩展,性能测试有点厉害!  

在过去几个月,其团队进行了多次测试,其中包括k节点Redis Enterprise集群其他基准测试n-shard数据库,如下所示:

Redis Enterprise新版优化线性扩展,性能测试有点厉害!

表1:Redis Enterprise线性扩展,同时提供亚毫秒级性能。

图1:集群吞吐量(@ 1毫秒延迟)

这表明随着吞吐量的增加,其节点的线性扩展能力增加,Redis Enterprise能够在所有数据大小和工作负载上始终如一地提供亚毫秒级延迟。

创建和调整集群数据库

其团队使用Redis Enterprise API创建了一个192-shard集群Redis数据库,其中包含以下参数:

Redis Enterprise新版优化线性扩展,性能测试有点厉害!

我们通过将proxy 线程数设置为24来调整每个节点上的proxy以应对预期的负载:

Redis Enterprise新版优化线性扩展,性能测试有点厉害! 当然,其他数据库供应商也发布了许多关于其扩展能力的基准测试数据。实际上,结果表明Redis Enterprise的表现优于NoSQL同行。以下图表是其他Nosql供应商的基准测试结果,该图表比较了Apache Cassandra,HBasemongoDB和Couchbase。

Redis Enterprise新版优化线性扩展,性能测试有点厉害!

Redis Enterprise新版优化线性扩展,性能测试有点厉害!

Redis Enterprise新版优化线性扩展,性能测试有点厉害!

Redis Enterprise新版优化线性扩展,性能测试有点厉害!

Redis Enterprise新版优化线性扩展,性能测试有点厉害!


从图表中可以看出,所有供应商都提供了亚线性扩展能力。例如,如果按节点分析Cassandra的吞吐量,Cassandra的1个节点可处理大约18,700 ops /秒,以此类推,32个节点时应该能够处理大约600,000 ops /秒。但实际上,它只能处理大约330,000ops /秒,只具备真正线性扩展数据库55%的能力。

凭借其最新的基准测试,Redis Enterprise已证明其每秒能够处理数百万次操作,即使在最基本的配置情况下也是如此。如下图所示,Redis Enterprise的性能优于其他数据库,可提供超线性扩展而不会影响性能!

Redis Enterprise新版优化线性扩展,性能测试有点厉害!

表3:Redis Enterprise ——节点的最佳与实际吞吐量

Redis Enterprise新版优化线性扩展,性能测试有点厉害!

这一新的基准测试证明了Redis Enterprises能够实现真正的线性可扩展性,同时通过有效的资源利用提供强大的性能,但是,基准测试中并未提到其他参与数据库的版本是企业版还是开源版,因此数据还有待考量。

您可能感兴趣的文档:

--结束END--

本文标题: Redis Enterprise新版优化线性扩展,性能测试有点厉害!

本文链接: http://www.lsjlt.com/news/45870.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • redis分布式锁怎么释放
    如何释放 redis 分布式锁 Redis 分布式锁是一种用于在分布式系统中协调对共享资源的访问的技术。释放分布式锁至关重要,因为它可以确保资源在使用后被正确释放,从而防止死锁和数据不一...
    99+
    2024-05-21
    redis
  • redis击穿怎么处理
    redis 击穿的处理方法:使用分布式锁加锁,确保仅一个请求创建 key;启用缓存穿透策略,返回默认值或错误消息;异步创建 key,避免影响主线程性能;预加载热点 key;优化 redi...
    99+
    2024-05-21
    redis
  • redis有序集合怎么实现
    redis有序集合(zset)通过哈希表和跳跃表实现,哈希表存储元素和分数映射,而跳跃表按分数排序元素并维护快速导航的指针,支持多种操作,包括添加、删除、更新分数、查找元素和获取排名,优...
    99+
    2024-05-21
    redis
  • redis哨兵模式怎么用
    redis 哨兵模式是一种高可用性解决方案,通过部署哨兵服务器来实现故障检测和自动故障转移。使用步骤包括:部署哨兵服务器、配置 redis 实例、启动哨兵服务器。哨兵模式工作原理:检测主...
    99+
    2024-05-21
    redis
  • 怎么查看redis是否启动
    检查 redis 是否已启动的最简单方法是使用 redis-cli 命令行工具,命令为: redis-cli -h -p 。除了 redis-cli,还可通过检查端口、查看进程或使用 ...
    99+
    2024-05-21
    redis
  • redis内存满了怎么办
    当redis内存已满时:清理不需要的数据增加redis实例的内存大小使用持久化优化数据结构减少客户端连接监控和调整 Redis内存已满的解决办法 当Redis的内存被占满时,会出现性能...
    99+
    2024-05-21
    redis 内存占用 数据丢失
  • redis多线程怎么用
    redis 支持多线程操作,以提高并发性和吞吐量。使用pubsub机制,可以在线程之间发送和接收消息;通过线程池,可以高效分配和管理预先创建的线程。注意事项包括线程安全、使用相同redi...
    99+
    2024-05-21
    redis
  • redis主从模式怎么切换
    redis 主从模式切换有两种方法:直接切换和 redis-sentinel 辅助切换。直接切换需要手动操作,包括停用主服务器、同步数据、解除关联和连接新主节点。redis-sentin...
    99+
    2024-05-21
    redis
  • redis怎么迁移数据
    redis 提供多种数据迁移方式:redis 复制:启用复制功能,将数据同步到目标服务器。redis rdb 导出和导入:创建 rdb 文件,将其从源服务器复制到目标服务器,然后加载。r...
    99+
    2024-05-21
    redis
  • redis哨兵怎么用
    redis 哨兵是一种 redis 服务的高可用性解决方案,通过监视 redis 实例并进行故障转移来确保服务的可用性。它需要安装 redis 哨兵并配置 sentinel.conf 文...
    99+
    2024-05-21
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作