Valkey 可以在没有配置文件的情况下启动,使用内置的默认配置,但这种设置仅推荐用于测试和开发目的。
配置 Valkey 的正确方法是提供一个 Valkey 配置文件,通常命名为 valkey.conf
。
valkey.conf
文件包含许多指令,其格式非常简单。
keyword argument1 argument2 ... argumentN
这是一个配置指令的示例
replicaof 127.0.0.1 6380
可以使用(双引号或单引号)引用提供包含空格的字符串作为参数,如下例所示
requirepass "hello world"
单引号字符串可以包含反斜杠转义的字符,双引号字符串还可以包含使用反斜杠十六进制表示法 "\xff" 编码的任何 ASCII 符号。
配置指令的列表及其含义和预期用法可在 Valkey 发行版中附带的自文档化示例 valkey.conf 中找到。
- Valkey OSS 7.2 的自文档化 valkey.conf。
- Redis OSS 7.2 的自文档化 redis.conf。
- Redis OSS 7.0 的自文档化 redis.conf。
- Redis OSS 6.2 的自文档化 redis.conf。
通过命令行传递参数
您也可以直接通过命令行传递 Valkey 配置参数。这对于测试目的非常有用。以下是一个示例,它启动一个新的 Valkey 实例,使用端口 6380 作为在 127.0.0.1 端口 6379 运行的实例的副本。
./valkey-server --port 6380 --replicaof 127.0.0.1 6379
通过命令行传递的参数格式与 valkey.conf 文件中使用的格式完全相同,只是关键字前缀为 --
。
请注意,这在内部会生成一个内存中的临时配置文件(可能会连接用户传入的配置文件,如果有的话),其中参数被转换为 valkey.conf 的格式。
在服务器运行时更改 Valkey 配置
可以在不停止和重启服务的情况下动态重新配置 Valkey,或者使用特殊命令 CONFIG SET
和 CONFIG GET
以编程方式查询当前配置。
并非所有配置指令都支持这种方式,但大多数都如预期般支持。有关更多信息,请参阅 CONFIG SET
和 CONFIG GET
页面。
请注意,动态修改配置对 valkey.conf 文件没有影响,因此在 Valkey 下次重启时将使用旧配置。
请务必根据您使用 CONFIG SET
设置的配置相应地修改 valkey.conf
文件。您可以手动完成,也可以使用 CONFIG REWRITE
,它会自动扫描您的 valkey.conf
文件并更新与当前配置值不匹配的字段。不存在但已设置为默认值的字段不会添加。配置文件中的注释会保留。
将 Valkey 配置为缓存
如果您计划将 Valkey 用作缓存,其中每个键都将设置过期时间,您可以考虑使用以下配置(假设最大内存限制为 2 兆字节作为示例)
maxmemory 2mb
maxmemory-policy allkeys-lru
在此配置中,应用程序无需使用 EXPIRE
命令(或等效命令)为键设置生存时间,因为只要我们达到 2 兆字节的内存限制,所有键都将使用近似 LRU 算法进行逐出。
基本上,在此配置中,Valkey 的行为方式与 memcached 类似。我们有关于将 Valkey 用作 LRU 缓存的更详细文档,请点击此处。