redis.conf配置说明

当前所用Redis版本为2.6.14,以内Redis.conf中已有比较详细的注释,本文多为翻译,外加个人实际配置过程中遇到的一些问题。

基本设置

1. 备释

当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写):

  • 1k => 1000 bytes
  • 1kb => 1024 bytes
  • 1m => 1000000 bytes
  • 1mb => 1024*1024 bytes
  • 1g => 1000000000 bytes
  • 1gb => 1024*1024*1024 bytes

 2. daemonize no

默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes

3. pidfile /var/run/redis.pid

当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。当运行多个redis服务时,需要指定不同的pid文件和端口。

4. port 6379

指定redis运行的端口

5. bind 127.0.0.1

翻看网上的文章,此处多翻译为“指定redis只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中最好设置该项”。这种解释会totally搞糊涂初学者,甚至是错误的。该处的英文原文为

?
1
2
3
# If you want you can bind a single interface, if the bind option is not
# specified all the interfaces will listen for incoming connections.
# bind 127.0.0.1

该处说明bind的是interface,也就是说是网络接口。服务器可以有一个网络接口(通俗的说网卡),或者多个。打个比方说机器上有两个网卡,分别为192.168.205.5 和192.168.205.6,如果bind 192.168.205.5,那么只有该网卡地址接受外部请求,如果不绑定,则两个网卡口都接受请求。

6. timeout 0

设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么server端关闭该连接。0为关闭该设置。

7. tcp-keepalive 0

指定TCP连接是否为长连接,”侦探”信号由server端维护,长连接将会额外的增加server端的开支

默认为0.表示禁用,非0值表示开启”长连接” ;”侦探”信号的发送间隔将有linux系统决定

在多次”侦探”后,如果对等端仍不回复,将会关闭连接,否则连接将会被保持开启.

client端socket也可以通过配置keepalive选项,开启”长连接”.

8. loglevel notice

server日志级别,合法值:debug,verbose,notice,warning 默认为notice

  • debug适合开发环境,客户端操作信息都会输出日志
  • verbose输出一些相对有用的信息,目前效果不明
  • notice适合生产环境
  • warning异常信息

9. logfile

指定Redis日志记录方式,默认值为stdout

10. databases 16

设定redis所允许的最大”db簇”的个数,默认为16个簇.

客户端可以通过”select”指令指定需要使用的”db簇”索引号,默认为0.

redis的顶层数据结构中,所有K-V都潜在的包括了”db簇”索引号,任何一个key都将隶属于一个”db”.

任何对数据的检索,只会覆盖指定的”db”;例如数据被插入到”db 10″中,那么在”db 1″中去get,将会返回null.

对数据归类到不同的db簇中,可以帮助我们实现一些特定的需求,比如根据不同客户端连接,来指定不同的db索引号.

Snapshotting配置

1. save <seconds> <changes>

save <seconds> <changes>,用来描述”在多少秒期间至少多少个变更操作”触发snapshot

snapshot最终将生成新的dump.rdb文件

save “”用来禁用snapshot功能

例如save 300 1表示5分钟内至少一个key变更,触发snapshot

2. rdbcompression yes

是否启用rdb文件压缩手段,默认为yes.

压缩可能需要额外的cpu开支,不过这能够有效的减小rdb文件的大小,有利于存储/备份/传输/数据恢复.

3. rdbchecksum yes

是否对rdb文件使用CRC64校验和,默认为”yes”,那么每个rdb文件内容的末尾都会追加CRC校验和.

对于其他第三方校验工具,可以很方便的检测文件的完整性

4. dbfilename dump.rdb

指定rdb文件的名称

5. dir ./

指定rdb/AOF文件的目录位置,只能为文件夹不能为文件

Replication

1. slaveof <masterip> <masterport>

将当前server做为slave,并为其指定master信息.

 Security

 requirepass foobared

当前server的授权密码

任何客户端或者slave与此server交互前,需要提交密码,其他server的masterauth配置和此参数值保持一致

密码应该足够复杂(64字节)

masterauth <master-password>

以认证的方式连接到master。 如果master中使用了”密码保护”,slave必须交付正确的授权密码,才能连接成功。

“requirepass”配置项指定了当前server的密码。

此配置项中<master-password>值需要和master机器的”requirepass”保持一致

slave-serve-stale-data yes

如果当前server是slave,那么当slave与master失去通讯时,是否继续为客户端提供服务,”yes”表示继续,”no”表示终止.

  • 在”yes”情况下,slave继续向客户端提供只读服务,有可能此时的数据已经过期.
  • 在”no”情况下,任何向此server发送的数据请求服务(包括客户端和此server的slave)都将被告知”error”
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页