Engula 配置指南

Engula 的配置文件语法与 Valkey 7.2 保持兼容;从 Redis 7.2 迁移时,通用配置通常也可以按兼容语义理解。除本文列出的 engula-* 专属配置外,端口、持久化、复制、内存淘汰、ACL、TLS、慢日志等通用配置以 Valkey 7.2 参数为主要参考。

这意味着迁移时通常不需要重写已有 redis.conf。更常见的做法是先复用原配置,再按评估目标补充 Engula 专属项,例如迁移完成后是否启用 Engula RDB、是否限制进入 earena 的对象大小、是否配置 license 文件。

配置文件

Engula 可以在没有配置文件的情况下使用内置默认值启动。这种方式适合临时测试,不建议用于生产。生产环境应使用明确的配置文件,并把运行时变更同步回配置管理系统。

常见启动方式:

1engula-server /etc/engula/engula.conf

如果已有 Redis / Valkey 配置,可以直接作为主配置文件使用,再在文件末尾加入 Engula 片段:

1include /etc/engula/engula-only.conf

include 放在末尾更容易管理覆盖关系。通用 Redis / Valkey 配置保留在主文件里,Engula 专属配置集中放在片段文件里,便于升级和审计。

多实例部署时,至少为每个实例隔离这些配置:

配置项 目的
port / bind 避免监听端口或地址冲突
dir 隔离 RDB / AOF / 临时文件目录
logfile 隔离日志输出
replicaof 配置副本关系
requirepass / masterauth 对齐认证配置

指令格式

配置指令采用空格分隔格式:

1keyword argument1 argument2 ... argumentN

例如:

1replicaof 127.0.0.1 6380
2requirepass "hello world"
3engula-rdb 1

参数中包含空格时使用单引号或双引号:

1engula-license "/etc/engula/customer license.lic"

完整的通用配置项请参考 Valkey 7.2 配置文档。该链接用于通用语法与参数说明参考;具体可用项、默认值和 Engula 专属配置以本文链接的版本化配置文件为准。

命令行覆盖

所有配置指令也可以通过命令行传入。命令行形式和配置文件一致,只是配置名需要加 -- 前缀:

1engula-server --port 6380 --replicaof 127.0.0.1 6379 --engula-rdb 0

命令行参数适合测试、容器启动参数或临时覆盖。生产环境仍建议把最终配置落回文件。

运行时配置

Engula 支持 Redis / Valkey 的运行时配置命令:

1CONFIG GET <pattern>
2CONFIG SET <parameter> <value>
3CONFIG REWRITE

并非所有配置都能运行时修改。标记为启动时生效的配置必须写入配置文件并重启实例。

Engula 专属项是 hidden config,不会出现在 CONFIG GET * 的结果里。查询时请使用完整名称:

1CONFIG GET engula-rdb
2CONFIG GET engula-earena-max-value-size

运行时修改示例:

1CONFIG SET engula-rdb 0
2CONFIG SET engula-earena-max-value-size 16777216
3CONFIG SET engula-disable-string yes

其中 engula-rdbengula-disable-* 适用于 Engula 2.2 及以上版本;旧版本请以对应版本的配置文件为准。

运行时修改不会自动写回配置文件。需要持久化时,优先修改配置管理系统中的源配置文件;如果使用 include 片段或自动化配置管理,请先确认 CONFIG REWRITE 的写回位置和格式符合预期,再在生产环境使用。

版本化配置文件

具体配置项以配置文件文本为准。本文只说明如何选择和使用这些文件;后续配置项新增或变更时,优先更新对应版本的 .conf 文件。

Engula 2.2 配置文件: full.confengula-only.conf

Engula 2.1 配置文件: full.confengula-only.conf

Engula 2.0 配置文件: full.confengula-only.conf

full.conf 是对应版本的完整 Engula 配置文件,包含 Redis / Valkey 兼容配置和 Engula 专属配置。engula-only.conf 只包含 engula-* 配置,适合通过 include 追加到已有 Redis / Valkey 配置后面。

不同版本的 engula-* 配置并不完全相同。升级时不要把旧版本的 Engula 配置片段直接复制到新版本,请以目标版本的 engula-only.conf 为准。

常见配置场景

最小单机实例

1port 6379
2dir /var/lib/engula
3logfile "/var/log/engula/engula.log"

使用 Engula RDB

适用版本Engula 2.2+
1engula-rdb 1
2save 900 1
3save 300 10
4save 60 10000

engula-rdb 1 会让本地 SAVE / BGSAVE 使用 Engula RDB。该模式主要用于集群节点都已切换为 Engula 后,提升 RDB SAVE / LOAD 等运维效率。迁移或回滚观察阶段,如果仍需要 Redis / Valkey 7.2 节点作为回退路径,建议使用兼容传统 RDB 的配置,待迁移完成后再评估是否启用。

复制场景还会结合对端是否声明支持 Engula RDB 能力来决定是否回退传统 RDB;上线前仍建议在测试环境验证 SAVE / LOAD 与复制链路。

兼容传统 RDB

适用版本Engula 2.2+
1engula-rdb 0

当需要把 RDB 交给原生 Redis / Valkey 工具、跨版本排查、对接尚未支持 Engula RDB 的链路,或迁移 / 回滚观察阶段仍保留 Redis / Valkey 7.2 节点时,使用传统 RDB 更稳妥。

限制 earena 写入范围

适用版本Engula 2.1+
1engula-enable-earena yes
2engula-earena-max-value-size 16777216

超过阈值的大 value 会回退到普通对象存储。该配置适合在大 value 占比较高的场景中控制 earena 的适用范围。

engula-earena-max-value-size 适用于 Engula 2.1 及以上版本;engula-enable-earenaengula-disable-* 适用于 Engula 2.2 及以上版本。

将 Engula 用作缓存

1maxmemory 1gb
2maxmemory-policy allkeys-lru
3appendonly no

缓存模式使用的是 Redis 7.2 兼容配置。达到内存上限后,实例会按配置的淘汰策略释放 key。Engula 的 earena、压缩和 RDB 配置可以与缓存配置同时使用。

最佳实践

  • 复用原 Redis / Valkey 配置时,先保持通用配置不变,只追加必要的 engula-* 项。
  • 每个实例使用独立的 dirlogfileport,避免复制或集群部署时互相覆盖。
  • 生产环境中不要依赖无配置文件启动;把配置纳入版本管理或配置管理系统。
  • CONFIG GET <exact-name> 检查 hidden config,不要用 CONFIG GET * 判断 engula-* 是否存在。
  • 运行时打开 engula-disable-string / engula-disable-set / engula-disable-hash(Engula 2.2+)只影响后续写入,不会立即迁移已存在数据。
  • 涉及 RDB 格式、license、兼容等级的变更,建议先在测试实例上验证 SAVE / LOAD、复制和客户端行为。

与 Redis 7.2 配置的关系

Engula 的配置体系面向低成本迁移:当前版本主要兼容 Valkey 7.2 的配置参数;从 Redis 7.2 迁移时,通用配置通常可以按兼容语义理解。Engula 只在 engula-* 命名空间增加自己的能力开关。

除本文明确列出的 Engula 专属项外,其余配置项、默认行为和调优方法请参考 Valkey 7.2 配置文档;最终以目标 Engula 版本的配置文件为准。