内存和性能

了解更多关于管理内存和优化数据库性能的信息。

Redis 企业软件在其架构中具有多种机制,以帮助优化存储和性能。

内存限制

数据库内存限制定义了您的数据库在集群中的所有数据库副本和分片上可以达到的最大大小。您的内存限制还将决定您需要的分片数量。

除了您的数据集外,内存限制还必须考虑复制、Active-Active开销、模块开销以及其他一些因素。这些因素可能会显著增加您的数据库大小,有时甚至增加四倍或更多。

有关内存限制的更多信息,请参阅数据库内存限制

驱逐策略

当数据库超过其内存限制时,驱逐策略决定了哪些数据被移除。驱逐策略根据使用频率、最近使用时间、随机、过期日期或这些因素的组合来移除键。策略也可以设置为noeviction,在尝试插入更多数据时返回内存限制错误。

数据库的默认驱逐策略是volatile-lru,它会驱逐所有设置了expire字段的键中最近最少使用的键。Active-Active数据库的默认策略是noeviction

欲了解更多信息,请参阅驱逐策略

数据库持久化

如果服务器或进程发生故障,RAM内存和闪存都有数据丢失的风险。将数据持久化到磁盘有助于在这些情况下保护数据免受丢失。您可以在数据库创建时配置持久化,或者通过编辑数据库的配置来实现。

Redis企业软件中有两种主要的持久化策略:仅追加文件(AoF)和快照。

仅追加文件(AoF)记录数据更改,并将每次更改写入文件末尾,允许您通过重放仅追加日志中的写入来恢复数据集。

快照捕捉某一时刻存在的所有数据并将其写入磁盘,使您能够恢复该时刻存在的整个数据集。

有关数据持久性的更多信息,请参阅Database persistence with Redis Enterprise SoftwareDurable Redis

自动分层

默认情况下,Redis Enterprise Software 将您的数据完全存储在 RAM 中以提高性能。Auto Tiering 功能使您的数据能够跨越 RAM 和 SSD 存储(闪存)。键始终存储在 RAM 中,但 Auto Tiering 管理其值的位置。频繁使用的(热)值存储在 RAM 中,但不常使用的(温)值则移动到闪存中。这节省了昂贵的 RAM 空间,使您在大数据集上以较低的成本获得可比的性能。

更多信息,请参见Auto Tiering

分片放置

集群节点上主分片和副本分片的位置可能会影响您的数据库性能。 主分片及其对应的副本分片始终放置在不同的节点上,以确保数据的弹性和高可用性。 分片放置策略有助于保持最佳性能和弹性。

Redis 企业软件有两种分片放置策略可用:

  • dense: 将尽可能多的分片放在最少数量的节点上
  • sparse: 尽可能将分片分散到多个节点上

有关分片放置策略的更多信息,请参阅分片放置策略

指标

从Redis企业软件集群管理器用户界面,您可以实时监控集群、节点、数据库和分片的性能指标。您还可以为节点、集群或数据库事件(如高内存使用率或吞吐量)启用警报。

通过Redis Enterprise Software API,您还可以将Redis Enterprise的指标集成到其他监控环境中,例如Prometheus。

有关使用Redis Enterprise Software进行监控的更多信息,请参阅使用指标和警报进行监控,以及内存统计

扩展数据库

每个Redis Enterprise集群可以包含多个数据库。在Redis中,数据库代表属于单个应用程序、租户或微服务的数据。Redis Enterprise设计为每个集群可扩展至数百个数据库,以提供灵活且高效的多租户模型。

每个数据库可以包含少量或大量的Redis分片。分片对Redis应用程序是透明的。数据库中的主分片处理给定键子集的数据操作。每个数据库的分片数量是可配置的,取决于应用程序的吞吐量需求。Redis Enterprise中的数据库可以重新分片为更多的Redis分片,以扩展吞吐量,同时保持亚毫秒级的延迟。重新分片操作无需停机。

Redis Enterprise 将主分片和副本放置在不同的节点、机架和区域中,并使用内存复制来保护数据免受故障的影响。

在Redis Enterprise中,每个数据库都有一个RAM配额。该配额不能超过节点上可用RAM的限制。然而,使用Redis Enterprise Flash,RAM可以扩展到本地闪存驱动器(SATA、NVMe SSD等)。数据库的总配额可以利用RAM和闪存驱动器。管理员可以选择RAM与闪存的比例,并在数据库的生命周期内随时调整,而无需停机。

使用自动分层技术,不是将所有键和数据存储在RAM中,而是将较少访问的值推送到闪存中。如果应用程序需要访问闪存中的值,Redis Enterprise会自动将该值带入RAM。根据使用的闪存硬件,当从闪存中将值带回RAM时,应用程序会经历稍微增加的延迟。然而,一旦值在RAM中,后续对同一值的访问是快速的。

客户端缓存

客户端缓存允许Redis客户端在本地缓存中存储一部分数据,并避免向Redis数据库发送重复请求。当用于缓存频繁访问的数据时,这种技术可以通过减少网络流量、延迟和数据库负载来提高性能。有关客户端缓存的更多信息,请参阅客户端缓存介绍

Redis 软件支持使用 Redis 7.4 及更高版本的数据库进行客户端缓存。有关兼容性和配置选项的更多信息,请参阅 Client-side caching compatibility with Redis Software

RATE THIS PAGE
Back to top ↑