本文基于Redis 6.0.9版本,前提至少 Redis 3.0或更高版本。
目录
1.Redis配置
Redis可以在不使用内置默认配置的配置文件的情况下启动,但是建议仅将此设置用于测试和开发目的。
正确配置Redis的方法是提供一个Redis配置文件,通常称为 redis.conf。
redis.conf 文件包含许多格式非常简单的指令:
keyword argument1 argument2 ... argumentN
这是配置指令的示例:
slaveof 127.0.0.1 6380
可以使用引号提供包含空格作为参数的字符串,如以下示例所示:
requirepass "hello world"
可从Redis发行版附带的自我文档示例redis.conf中获得配置指令的列表及其含义和预期用法。
- redis.conf for Redis 6.0.
- redis.conf for Redis 5.0.
- redis.conf for Redis 4.0.
- redis.conf for Redis 3.2.
- redis.conf for Redis 3.0.
- redis.conf for Redis 2.8.
- redis.conf for Redis 2.6.
- redis.conf for Redis 2.4.
1.1.通过命令行传递参数
从Redis 2.6开始,可以直接使用命令行传递Redis配置参数。 这对于测试非常有用。 以下是一个示例,该示例使用端口6380作为,在127.0.0.1端口6379上,运行的实例的从节点启动新的Redis实例。
./redis-server --port 6380 --slaveof 127.0.0.1 6379
通过命令行传递的参数格式与redis.conf文件中使用的参数格式完全相同,不同之处在于关键字的前缀为 --。
请注意,这会在内部生成一个内存中的临时配置文件(可能会连接用户传递的配置文件(如果有)),其中参数被转换为redis.conf格式。
1.2.在服务器运行时更改Redis配置
可以在不停止和重新启动服务的情况下,即时重新配置Redis,或者使用特殊命令CONFIG SET和CONFIG GET以编程方式查询当前配置
并非所有配置指令都以这种方式受支持,但大多数都按预期方式受支持。 有关更多信息,请参考CONFIG SET和CONFIG GET页面。
请注意,即时修改配置对redis.conf文件没有影响,因此在下次重新启动Redis时,将使用旧配置。
确保还根据你使用CONFIG SET设置的配置来修改redis.conf文件。 你可以手动执行此操作,也可以从Redis 2.8开始,仅使用CONFIG REWRITE,它将自动扫描redis.conf文件并更新与当前配置值不匹配的字段。 不存在但不设置为默认值的字段。 配置文件中的注释将保留。
1.3.将Redis配置为缓存
如果你打算将Redis用作每个键都将具有过期集的缓存,则可以考虑使用以下配置(例如,最大内存限制为2 MB):
maxmemory 2mb
maxmemory-policy allkeys-lru
在此配置中,应用程序无需使用EXPIRE命令(或等效命令)来设置键生存时间,因为只要我们达到2M的内存限制,所有的键都会使用近似的LRU算法清除。
基本上,在此配置中,Redis的行为与memcached类似。 我们有更多有关将Redis用作LRU缓存的文档。