本页面介绍了 Memorystore for Redis Cluster 可用的 maxmemory 政策和其他 Redis 配置。
如需了解如何修改本页面上列出的配置,请参阅配置集群。
最大内存政策
当实例内存已满且有新的写入操作时,Redis 会根据实例的 maxmemory 政策逐出键,以便为写入操作腾出空间。Memorystore for Redis Cluster 的默认 maxmemory 政策为 volatile-lru。您还可以使用以下最大内存政策之一:
noeviction:当实例达到 maxmemory 时返回错误。不会覆盖或逐出任何数据。allkeys-lfu:从整个键集中逐出最不常用的 (LFU) 键。allkeys-lru:从整个密钥集中逐出最近最少使用的 (LRU) 键。volatile-lfu:逐出设置了 TTL(存留时间)到期时间的最不常用的键。volatile-lru:逐出通过 TTL 到期时间设置的最近最少使用的 (LRU) 键。allkeys-random:逐出整个键空间中的随机键。volatile-random:从通过 TTL 到期设置的那些键中逐出随机键。volatile-ttl:从通过 TTL 到期设置的那些键中逐出 TTL 最短的键。
可修改的配置参数
您可以在创建或更新 Memorystore for Redis Cluster 实例时修改以下参数。
| 参数 | 说明 | 可接受的值 |
|---|---|---|
| maxmemory-clients | Redis 7.0 或更高版本。此配置允许用户控制客户端的最大内存用量。 普通/pubsub 客户端的总内存用量。如果达到上限,系统会逐出内存用量最多的客户端。 |
可接受的值为 0% 到 100% 之间的整数百分比值。表示客户端存储空间限制为实例 maxmemory 的百分比。默认值取决于节点类型。如需了解详情,请参阅节点特性。 |
| maxmemory | 指定逐出政策生效的可调整限制。您可以在单个节点级别设置 maxmemory 限制,但该设置会应用于所有节点。例如,假设您有一个包含 3 个节点的实例,使用 58 GB redis-highmem-xlarge
节点类型,并且希望将 maxmemory 设置为实例总容量的 90%。为此,您需要将 maxmemory 设置为 52.2 GB,即节点容量的 90%。这适用于所有节点,会将实例总 maxmemory 限制设置为 90%。如需详细了解默认预留开销,请参阅键空间容量和预留开销。
|
实例的最大内存限制。 它支持以下单位: b(默认)kkbmmbggb |
| maxmemory-policy | 指定实例数据达到 maxmemory 限制时 Redis 遵循的行为。如需详细了解每项政策,请参阅 Maxmemory 政策。如需详细了解开源 Redis maxmemory 政策,请参阅开源 Redis LRU 缓存页面。 |
noevictionallkeys-lruvolatile-lru(默认)allkeys-randomvolatile-randomvolatile-ttlvolatile-lfu(Redis 4.0 版及更高版本)allkeys-lfu(Redis 4.0 版及更高版本) |
| notify-keyspace-events | 允许客户端订阅有关特定键空间事件的通知。 如需了解详情,请参阅 Redis 键空间通知。 |
""无事件(默认) K键空间事件,使用 __keyspace@<db>__ 前缀发布。 E键事件,使用 __keyevent@<db>__ 前缀发布。 g通用命令(非特定类型),例如 DEL、EXPIRE 或 RENAME $字符串命令 l列表命令 s集合命令 h哈希命令 z有序集合命令 x过期事件(每次键过期时生成的事件) e逐出事件(因 maxmemory 逐出键时生成的事件) Ag$lshzxe 的别名,因此“AKE”字符串表示所有事件。 |
| slowlog-log-slower-than | 可让您配置慢日志。指定执行时间阈值(以微秒为单位)。每当命令超过此阈值时,系统都会将其添加到慢速日志中。 | 默认值为 10000。 值为零会强制记录每个命令。而值为 -1 则会停用慢速日志。任何其他负值都会被拒绝。 |
| maxclients | 可让您为实例配置 maxclients。如需了解实例的客户端数量上限和默认值,请参阅客户端数量上限。 | 默认值取决于节点类型。如需了解详情,请参阅节点特性。 |
不可修改的配置参数
Memorystore for Redis Cluster 会将 proto-bulk-max-len 配置参数的值设置为 256 MB。您无法更改此值。