Redis支持采用其内置默认配置的方式来进行启动,而不需要提前配置任何文件,但是这种启动方式只推荐在测试和开发环境中使用。
更好的方式是通过提供一个Redis的配置文件来对Redis进行配置, 这个配置文件一般命名为’redis.conf’。
‘redis.conf’ 文件中包含一系列格式非常简单的配置项,如下所示:
keyword argument1 argument2 ... argumentN
简单配置示例:
slaveof 127.0.0.1 6380
如果说配置参数值中包含空格,则需要为其添加双引号,如下所示:
requirepass "hello world"
所有这些配置项的列表,以及它们的意思和用法,都可以参考Redis发行版中的redis.conf自说明示例文档。
- 自说明文档 Redis 2.8中的redis.conf。
- 自说明文档 Redis 2.6中的redis.conf。
- 自说明文档 Redis 2.4中的redis.conf。
通过命令行传递参数
自Redis 2.6 开始,Redis就可以支持通过命令行来传递配置参数。这个功能对测试来说非常有用。
下面这个是例子是使用6380端口来启动一个新的Redis实例,并且从实例在127.0.0.1的6379端口运行。
./redis-server --port 6380 --slaveof 127.0.0.1 6379
命令行传递参数的格式和在redis.conf文件中配置参数的格式是一样的, 唯一的不同之处是在命令行参数关键字前需要添加’–‘前缀。
注意:采用这种方式,其内部会在内存中生成一个临时的配置文件(可能会把用户传递的任意配置项都添加到配置文件里),传递的参数会转换成redis.conf文件的格式。
运行时改变Redis配置
Redis支持在运行时通过使用命令CONFIG SET 和 CONFIG GET 来对配置项进行重新配置,以及通过编程来查询Redis当前的配置项,设置和查询不需要停止和重启服务。
并不是所有的配置项都支持这种配置方式,但是大部分是支持的。具体的支持情况请参考:
CONFIG SET 和 CONFIG GET
注意:运行时动态修改的配置项 不会影响redis.conf文件中的配置,在下一次重启时,又会恢复以前的配置。
如果通过CONFIG SET修改了某些配置项,还确定要同时修改’redis.conf’配置文件中相对应的配置项。则需要你自己手动去修改,或者使用Redis 2.8。在Redis2.8 中,你只要使用CONFIG REWRITE 来重写参数项,将自动去扫描你的’redis.conf’文件,如果发现配置的值和你要修改的值不匹配的话,则会将配置的值更新为新设置的值。如果对应的配置项不存在,则会设置为默认值而不是新添加的。配置文件中的注释将会被保留。
将Redis配置为缓存
如果你计划将Redis当作一个缓存来使用,而且每一个key都需要有一个过期设置,你可以考虑使用如下的配置(示例中假设最大内存限制为2M):
maxmemory 2mb
maxmemory-policy allkeys-lru
在这个配置中,应用程序不需要再使用 ‘EXPIRE’ 命令(或者相同的命令)为每一个存活的key设置一个过期时间,因为所有的key在都将在达到2M内存限制时,使用近似LRU算法对其进行淘汰。
基本上,采用这个配置,Redis的表现将与memcached类似。更详细的文档请参考使用Redis作为LRU缓存。