Redis深入系列-0x013:redis配置

Redis允许以没有配置文件的方式启动,他将会使用内置的默认配置,但是这种方式推荐只用来测试和开发。
最好的方式是提供一个Redis配置文件给Redis,通常命名为redis.conf
redis.conf通常包含了一系列的指令,它们的格式很简单:

keyword argument1 argument2 ... argumentN

这是一个配置指令的示例:

slaveof 127.0.0.1 6380

当然,提供一个包含空白符的参数也是可以的,不过需要使用引号包裹,就像:

requirepass "hello world"

配置指令列表和每个指令的意义都写在他们自己的redis.conf文件中,通常被打包到Redis发行。

通过命令行传输参数
Redis 2.6开始,就可以使用命令行直接传输配置参数。这对于测试来说非常有用,下面这个示例显示了如何启动一个新的使用6380端口的Redis实例作为另一个host127.0.0.1端口为6379的实例的slave

./redis-server --port 6380 --slaveof 127.0.0.1 6379

通过命令行参数形式传输配置的方式和提供一个redis.conf文件没有什么不同,唯一不同的就是keyword前面有--
注意:Redis内部内存会生成一个临时配置文件,大部分的参数翻译成redis.conf形式的

Redis服务端运行的时候改变Redis配置。

使用CONFIG SETCONFIG GET命令可以在不停止Redis运行或者重启服务的情况下,重新配置Redis或者查询Redis当前配置。

并不是所有的配置指令都支持这种方式,但是大部分都支持。可以去CONFIG SETCONFIG GET了解更多详情。

要注意的是在Redis在运行的时候改变它的配置不会影响到redis.conf文件,在下次启动的时候Redis将继续使用旧的配置。

确保修改redis.conf文件和你使用CONFIG SET一致。你可以手动,也可以使用Redis 2.8,你可以使用CONFIG REWRITE,他可以自动扫描你的redis.cong文件,并在配置的值错误的时候自动更新相应的域。域如果不存在但是设置为默认值将不会被添加。你配置文件中的注释将被保留。

配置Redis为缓存
Configuring Redis as a cache
如果你打算将Redis当做缓存并且每个key都将有一个过期时间,你最好考虑一下下面的配置:

maxmemory 2mb
maxmemory-policy allkeys-lru

在这个配置中,不需要使用EXPIRE为应用程序设置过期时间,因为当我们命中超过2MB内存限制的时候,所有的key都会被近似LRU算法驱逐。
一般来说,在这个配置下,redis表现的像memcached,我们还有更多关于将Redis作为LRU cache的文档。

    原文作者:followWinter
    原文地址: https://segmentfault.com/a/1190000014961825
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞