Redis 配置
redis.conf 概述,Redis 配置文件
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.conf for Redis 7.4。
- 自文档化的redis.conf for Redis 7.2。
- 自文档化的redis.conf for Redis 7.0。
- 自文档化的redis.conf for Redis 6.2。
- 自文档化的redis.conf for Redis 6.0。
- 自文档化的redis.conf for Redis 5.0。
- 自文档化的redis.conf for Redis 4.0。
- 自文档化的Redis 3.2的redis.conf。
- 自文档化的redis.conf for Redis 3.0。
- 自文档化的Redis 2.8的redis.conf。
- 自文档化的redis.conf for Redis 2.6。
- 自文档化的redis.conf for Redis 2.4。
通过命令行传递参数
你也可以直接通过命令行传递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 用作缓存,其中每个键都会设置过期时间,您可以考虑使用以下配置(假设最大内存限制为 2 兆字节为例):
maxmemory 2mb
maxmemory-policy allkeys-lru
在此配置中,应用程序无需使用EXPIRE
命令(或等效命令)为键设置生存时间,因为一旦达到2兆字节的内存限制,所有键将使用近似的LRU算法被驱逐。
基本上,在这种配置下,Redis的行为与memcached类似。 我们有更详细的文档关于如何使用Redis作为LRU缓存这里。