参数配置

创建 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。
无磁盘参数模板无磁盘参数模板会完全禁用 Redis 持久化机制。在此配置下,Redis 仅作为内存缓存来加速应用性能。所有数据都驻留在内存中,不会持久化到磁盘,因此 Redis 重启或发生故障时会导致数据丢失。此配置可最大化性能,但会牺牲数据持久性。数据仅存在于内存中,从而消除了与存储相关的性能开销。但是,所有 Redis 节点发生故障会导致数据完全丢失。

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

您还可以创建自定义参数模板,以便在多个实例之间重复使用。

根据更改生效的方式,Redis 参数分为三类:

类别参数行为
热更新参数支持动态重新配置的各种参数更改会立即生效,无需重启实例。
重启更新参数databases、rename-command、rdbchecksum、tcp-backlog、io-threads、io-threads-do-reads更改需要完全重启实例才能生效。
不可修改参数bind、protected-mode、port、supervised、pidfile、dir 等这些参数要么是内置系统配置,要么是在实例初始化后修改可能导致运行不稳定。

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

  • 实施参数更改前,确定这些参数是否支持热更新。对于需要重启实例的参数,请在修改前执行适当的数据备份。
  • 升级 Redis 版本后,请查看 Redis 配置文档 中的参数兼容性,以识别已弃用、已移除或已修改的参数。

操作步骤

CLI
Web Console

数据节点参数

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

# 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-milliseconds、failover-timeout、parallel-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"}}}}'