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