内存和性能
了解有关管理内存和优化数据库性能的更多信息。
Redis 企业软件 |
---|
Redis Enterprise Software 的 架构来帮助优化存储和性能。
内存限制
数据库内存限制定义数据库在集群上的所有数据库副本和分片中可以达到的最大大小。您的内存限制还将决定您需要的分片数量。
除了数据集之外,内存限制还必须考虑复制、主动-主动开销和模块开销以及许多其他因素。这些可以显著增加您的数据库大小,有时会增加四倍或更多。
有关内存限制的更多信息,请参阅数据库内存限制。
驱逐策略
当数据库超过其内存限制时,驱逐策略将确定删除哪些数据。逐出策略根据使用频率、最近使用时间、随机、到期日期或这些因素的组合来删除密钥。该策略也可以设置为noeviction
在尝试插入更多数据时返回 Memory Limit 错误。
数据库的默认驱逐策略为volatile-lru
这会将最近使用最少的键从所有键中驱逐出来,并使用expire
字段集。主动-主动数据库的默认值为noeviction
.
有关更多信息,请参阅驱逐策略。
数据库持久性
如果服务器或进程发生故障,RAM 内存和闪存都存在数据丢失的风险。将数据保存到磁盘有助于防止在这些情况下丢失数据。您可以在创建数据库时或通过编辑数据库的配置来配置持久性。
Redis Enterprise Software 中的持久性策略主要有两种类型:仅附加文件 (AoF) 和快照。
仅附加文件 (AoF) 保留数据更改的记录,并将每个更改写入文件末尾,从而允许您通过在仅附加日志中重放写入来恢复数据集。
快照会及时捕获所有数据,并将其写入磁盘,从而使您能够恢复整个数据集在该时刻的存在。
有关数据持久性的更多信息,请参阅使用 Redis Enterprise Software 或 Durable Redis 的数据库持久性。
自动分层存储
默认情况下,Redis Enterprise Software 将数据完全存储在 RAM 中以提高性能。Auto Tiering 功能使您的数据能够同时跨越 RAM 和 SSD 存储(闪存)。键始终存储在 RAM 中,但 Auto Tiering 会管理其值的位置。经常使用的 (hot) 值存储在 RAM 上,但不经常使用的 (warm) 值被移动到 flash 内存中。这样可以节省昂贵的 RAM 空间,从而以较低的成本为大型数据集提供相当的性能。
有关更多信息,请参阅 Auto Tiering。
分片放置
主分片和副本分片在集群节点上的位置可能会影响您的数据库性能。 主分片及其相应的副本分片始终放置在单独的节点上,以实现数据弹性和高可用性。 分片放置策略有助于保持最佳性能和弹性。
Redis Enterprise Software 提供两种分片放置策略:
- dense:将尽可能多的分片放在最少数量的节点上
- sparse:将分片分布在尽可能多的节点上
有关分片放置策略的更多信息,请参阅分片放置策略
指标
在 Redis Enterprise Software Cluster Manager UI 中,您可以使用实时指标监控集群、节点、数据库和分片的性能。您还可以为节点、集群或数据库事件(例如高内存使用率或吞吐量)启用警报。
借助 Redis Enterprise Software API,您还可以将 Redis Enterprise 指标集成到其他监控环境,例如 Prometheus。
有关使用 Redis Enterprise Software 进行监控的更多信息,请参阅使用指标和警报进行监控和内存统计信息。
扩展数据库
每个 Redis Enterprise 集群可以包含多个数据库。在 Redis 中, 数据库表示属于单个应用程序、租户或 微服务。Redis Enterprise 可扩展至数百个数据库 来提供灵活高效的多租户模型。
每个数据库可以包含少量或许多 Redis 分片。分片是 对 Redis 应用程序透明。数据库进程中的主分片 data作。每个 数据库是可配置的,并取决于 应用。Redis Enterprise 中的数据库可以重新分片为更多 Redis 分片以扩展吞吐量,同时保持亚毫秒级 潜伏期。在不停机的情况下执行重新分片。

Redis Enterprise 将主分片和副本放在单独的 节点、机架和区域,并使用内存中复制来保护数据 反对失败。
在 Redis Enterprise 中,每个数据库都有一个 RAM 配额。配额不能 超出节点上可用 RAM 的限制。但是,使用 Redis Enterprise Flash,RAM 扩展到本地闪存驱动器(SATA、NVMe SSD 等)。数据库的总配额可以同时利用两者 RAM 和闪存驱动器。管理员可以选择 RAM 与闪存的比率 并在数据库的生命周期内随时进行调整,而无需 停机时间。
使用 Auto Tiering,而不是存储 给定 RAM 中的分片,则不常访问的值将推送到 Flash。 如果应用程序需要访问 flash 中的值,Redis Enterprise 会自动将值引入 RAM。根据 使用闪存硬件时,应用程序的延迟略高 将值从 flash 带回 RAM 时。然而,随后 一旦该值在 RAM 中,访问相同的值就会很快。
客户端缓存
客户端缓存允许 Redis 客户端在本地缓存中存储数据子集,并避免向 Redis 数据库发送重复请求。当用于缓存经常访问的数据时,此技术可以通过减少网络流量、延迟和数据库负载来提高性能。有关客户端缓存的更多信息,请参阅客户端缓存简介。
Redis Software 支持对 Redis 版本 7.4 及更高版本的数据库进行客户端缓存。有关兼容性和配置选项的更多信息,请参阅客户端缓存与 Redis Software 的兼容性。