参数配置

在创建 Redis 实例时,系统会应用默认参数模板。

Alauda Application Services 为每个 Redis 版本提供专用参数模板(6.0 及更高版本提供三个模板),以满足不同的运行需求。

参数模板说明注意事项
RDB 参数模板RDB 持久化参数模板 为 Redis 配置 RDB 持久化,它会按照配置的间隔将内存数据集以二进制快照的形式序列化到磁盘。此方式非常适合资源有限、需要在性能和数据持久性之间取得平衡的环境,其中可接受分钟级的数据丢失。在此模式下,Redis 可作为持久化数据存储使用。数据持久性取决于 save 参数配置,通常可提供分钟级恢复点目标(RPO)。
AOF 参数模板AOF 持久化参数模板 为 Redis 配置 Append-Only File 持久化,它会顺序记录所有写操作以确保数据完整性。在实例恢复期间,Redis 会回放 AOF 文件中的操作以重建数据集。此方式适用于资源充足、数据安全优先于性能考虑的环境。在此模式下,Redis 可作为持久化数据存储使用。AOF 持久化所需的频繁 fsync 操作需要高性能存储基础设施,可能会影响 Redis 的整体性能,但可提供秒级 RPO。
Diskless 参数模板Diskless 参数模板 会完全禁用 Redis 持久化机制。在此配置下,Redis 仅作为内存缓存来提升应用性能。所有数据都驻留在内存中,不进行磁盘持久化,因此在 Redis 重启或故障时会发生数据丢失。此配置可最大化性能,但会牺牲数据持久性。数据仅存在于内存中,消除了与存储相关的性能开销。但如果所有 Redis 节点都发生故障,将导致数据完全丢失。

在创建 Redis 实例时,请在 Create Redis Instance 页面中的 Parameter Templates 字段选择最符合业务需求的模板。

你也可以创建自定义参数模板,以便在多个实例之间复用。

Redis 参数根据变更生效方式分为三类:

类别参数行为
热更新参数支持动态重新配置的各类参数变更会立即生效,无需重启实例。
重启更新参数databasesrename-commandrdbchecksumtcp-backlogio-threadsio-threads-do-reads变更后需要完整重启实例才会生效。
不可修改参数bindprotected-modeportsupervisedpidfiledir这些参数要么是内置系统配置,要么在实例初始化后修改可能会导致运行不稳定。

修改 Redis 参数时,请考虑以下最佳实践:

  • 在实施参数变更之前,请先确认这些参数是否支持热更新。对于需要重启实例的参数,请在修改前进行适当的数据备份。
  • 升级 Redis 版本后,请参考 Redis configuration documentation 中的参数兼容性,识别已弃用、已移除或已修改的参数。

操作步骤

CLI
Web Console

数据节点参数

实例的数据节点参数配置通过 Redis CR 资源的 spec.customConfig 字段指定。有关参数的详细说明,请参考 API documentation

# Update the data node configuration of instance s6
$ kubectl -n default patch redis s6 --type=merge --patch='{"spec": {"customConfig": {"save":"600 1"}}}'

Sentinel 节点参数

数据节点注册到 Sentinel 节点的参数配置如下:

目前仅支持以下三个参数:down-after-millisecondsfailover-timeoutparallel-syncs

# Update the sentinel node configuration of instance s6
$ kubectl -n default patch redis s6 --type=merge --patch='{"spec": {"sentinel": {"monitorConfig": {"down-after-milliseconds":"30000","failover-timeout":"180000","parallel-syncs":"1"}}}}'