【转载】redis.conf文件详解

转载地址:http://blog.csdn.net/zhutulang/article/details/51969760html

Redis.conf文件能够在github上查看,下面是我整理的其中的配置项(版本是3.2)的解析,尽可能全面一些吧。node

参考:一、http://running.iteye.com/blog/2065351mysql

             二、http://chembo.iteye.com/blog/2054021linux

             三、http://www.cnblogs.com/kreo/p/4423362.htmlgit

             四、www.111cn.net/database/276/84771.htmgithub

 

注:REDIS CLUSTER 以后的配置暂时没有列出来。实在是太多了。redis

一、include算法

解释:引入其它配置文件。好比说当你有多个server,而有一些配置项是它们公用的,那么你能够将这些公用的配置项写进一个配置文件common.conf里,而后这些server再include这个配置文件,这些server本身的配置项则分别写在本身的配置文件里。sql

示例:include /path/to/common.conf数据库

 

二、loadmodule

解释:此配置项还没有了解。注释是这样的:启动时加载模块,若是server没法加载模块,则此配置会被忽略。可使用多个loadmodule。

示例:loadmodule /path/to/my_module.so

 

三、bind

解释:默认状况下,redis 在 server 上全部有效的网络接口上监听客户端链接。若是只想让它在一个或多个网络接口上监听,那你就绑定一个IP或者多个IP。多个ip空格分隔便可。

示例: bind 192.168.1.100 10.0.0.1
             bind 127.0.0.1 ::1

 

四、protected-mode

解释:当开启后,禁止公网访问redis。它启用的条件有两个,第一是没有使用bind,第二是没有设置访问密码。

示例:protected-mode yes

 

五、port

解释:指定该redis server监听的端口号。默认是6379,若是指定0则不监听。

示例:port 6379

 

六、tcp-backlog

解释:此参数肯定了TCP链接中已完成队列(完成三次握手以后)的长度, 固然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大而且客户端速度缓慢的时候,能够将这二个参数一块儿参考设定。

示例:tcp-backlog 511

 

七、unixsocket

解释:指定 unix socket 的路径。

示例:unixsocket /tmp/redis.sock

 

八、unixsocketperm

解释:指定 unix socket file 的权限。

示例:unixsocketperm  755

 

九、timeout

解释:当客户端闲置多少秒后关闭链接,若是设置为0表示关闭该功能。

示例:timeout  30

 

十、tcp-keepalive

解释:单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是300S

示例:tcp-keepalive 300

 

十一、daemonize

解释:是否以守护模式启动,默认为no,配置为yes时以守护模式启动,这时redis instance会将进程号pid写入默认文件/var/run/redis.pid。

示例:daemonize yes

 

十二、supervised

解释:能够经过upstart和systemd管理Redis守护进程,这个参数是和具体的操做系统相关的。

示例:supervised no

 

1三、pidfile

解释:配置pid文件路径。当redis以守护模式启动时,若是没有配置pidfile,pidfile默认值是/var/run/redis.pid 。

示例:pidfile /var/run/redis_6379.pid

 

1四、loglevel

解释:日志级别。可选项有:debug(记录大量日志信息,适用于开发、测试阶段);  verbose(较多日志信息);  notice(适量日志信息,使用于生产环境);warning(仅有部分重要、关键信息才会被记录)。

示例:loglevel notice

 

1五、logfile

解释:日志文件的位置,当指定为空字符串时,为标准输出,若是redis已守护进程模式运行,那么日志将会输出到  /dev/null 。

示例:logfile ""

 

1六、syslog-enabled

解释:是否把日志记录到系统日志。(何意?)

示例:syslog-enabled no

 

1七、syslog-ident

解释:设置系统日志的id

示例:syslog-ident redis

 

1八、syslog-facility

解释:指定syslog设备(facility),必须是user或则local0到local7。

示例:syslog-facility local0

 

1九、databases

解释:设置数据库的数目。默认的数据库是DB 0 ,能够在每一个链接上使用select  <dbid> 命令选择一个不一样的数据库,dbid是一个介于0到databases - 1 之间的数值。

示例:databases 16

 

20、save

解释:保存数据到磁盘。格式是:save <seconds> <changes> ,含义是在 seconds 秒以后至少有 changes个keys 发生改变则保存一次。

示例:save 900 1
            save 300 10
            save 60 10000

 

2一、stop-writes-on-bgsave-error

解释:默认状况下,若是 redis 最后一次的后台保存失败,redis 将中止接受写操做,这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘, 不然就会没人注意到灾难的发生。 若是后台保存进程从新启动工做了,redis 也将自动的容许写操做。然而你要是安装了靠谱的监控,你可能不但愿 redis 这样作,那你就改为 no 好了。

示例:stop-writes-on-bgsave-error no

 

2二、rdbcompression

解释:是否在dump  .rdb数据库的时候压缩字符串,默认设置为yes。若是你想节约一些cpu资源的话,能够把它设置为no,这样的话数据集就可能会比较大。

示例:rdbcompression yes

 

2三、rdbchecksum

解释:是否CRC64校验rdb文件,会有必定的性能损失(大概10%)。

示例:rdbchecksum yes

 

2四、dbfilename

解释:rdb文件的名字。

示例:dbfilename dump.rdb

 

2五、dir

解释:数据库存放目录。必须是一个目录,aof文件也会保存到该目录下。

示例:dir ./

 

2六、slaveof

解释:设置本机为slave服务。格式:slaveof <masterip> <masterport>。设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步。

示例:slaveof  192.168.0.1  6379

 

2七、masterauth

解释:当master服务设置了密码保护时,slav服务链接master的密码。

示例:masterauth   123456

 

2八、slave-serve-stale-data

解释:当一个slave与master失去联系时,或者复制正在进行的时候,slave应对请求的行为:1) 若是为 yes(默认值) ,slave 仍然会应答客户端请求,但返回的数据多是过期,或者数据多是空的在第一次同步的时候;2) 若是为 no ,在你执行除了 info 和 salveof 以外的其余命令时,slave 都将返回一个 "SYNC with master in progress" 的错误。
示例:slave-serve-stale-data yes

 

2九、slave-read-only

解释:设置slave是不是只读的。从2.6版起,slave默认是只读的。

示例:slave-read-only  yes

 

30、repl-diskless-sync

解释:主从数据复制是否使用无硬盘复制功能。

示例:repl-diskless-sync no

 

3一、repl-ping-slave-period

解释:指定slave按期ping master的周期,默认10秒钟。

示例:repl-ping-slave-period 10

 

3二、repl-timeout

解释:设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒 。 

示例:repl-timeout 60

 

3三、repl-disable-tcp-nodelay
解释:指定向slave同步数据时,是否禁用socket的NO_DELAY选 项。若配置为“yes”,则禁用NO_DELAY,则TCP协议栈会合并小包统一发送,这样能够减小主从节点间的包数量并节省带宽,但会增长数据同步到 slave的时间。若配置为“no”,代表启用NO_DELAY,则TCP协议栈不会延迟小包的发送时机,这样数据同步的延时会减小,但须要更大的带宽。 一般状况下,应该配置为no以下降同步延时,但在主从节点间网络负载已经很高的状况下,能够配置为yes。

示例:repl-disable-tcp-nodelay no

 

3四、repl-backlog-size

解释:设置主从复制backlog容量大小。这个 backlog 是一个用来在 slaves 被断开链接时存放 slave 数据的 buffer,因此当一个 slave 想要从新链接,一般不但愿所有从新同步,只是部分同步就够了,仅仅传递 slave 在断开链接时丢失的这部分数据。这个值越大,salve 能够断开链接的时间就越长。

示例:repl-backlog-size 1mb

 

3五、repl-backlog-ttl

解释:配置当master和slave失去联系多少秒以后,清空backlog释放空间。当配置成0时,表示永远不清空。

示例:repl-backlog-ttl 3600

 

3六、slave-priority

解释:当 master 不能正常工做的时候,Redis Sentinel 会从 slaves 中选出一个新的 master,这个值越小,就越会被优先选中,可是若是是 0 , 那是意味着这个 slave 不可能被选中。 默认优先级为 100。

示例:slave-priority 100

 

3七、requirepass

解释:设置redis链接密码。

示例:requirepass foobared

 

3八、rename-command

解释:将命令重命名。为了安全考虑,能够将某些重要的、危险的命令重命名。当你把某个命令重命名成空字符串的时候就等于取消了这个命令。

示例:rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52

            rename-command CONFIG ""

 

3九、maxclients

解释:设置客户端最大并发链接数,默认无限制,Redis能够同时打开的客户端链接数为Redis进程能够打开的最大文件描述符数-32(redis server自身会使用一些),若是设置 maxclients 0,表示不做限制。当客户端链接数到达限制时,Redis会关闭新的链接并向客户端返回max number of clients reached错误信息。

示例:maxclients 10000

 

40、maxmemory

解释: 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将没法再进行写入操做,但仍然能够进行读取操做。Redis新的vm机制,会把Key存放内存,Value会存放在swap区,格式:maxmemory <bytes> 。

示例:maxmemory 1024000

 

4一、maxmemory-policy

解释:当内存使用达到最大值时,redis使用的清楚策略。有如下几种能够选择(明明有6种,官方配置文件里却说有5种能够选择?):

            1)volatile-lru   利用LRU算法移除设置过过时时间的key (LRU:最近使用 Least Recently Used ) 

            2)allkeys-lru   利用LRU算法移除任何key 

            3)volatile-random 移除设置过过时时间的随机key 

            4)allkeys-random  移除随机key 

            5)volatile-ttl   移除即将过时的key(minor TTL) 

            6)noeviction  noeviction   不移除任何key,只是返回一个写错误 。默认选项

示例:maxmemory-policy noeviction

 

4二、maxmemory-samples

解释:LRU 和 minimal TTL 算法都不是精准的算法,可是相对精确的算法(为了节省内存),随意你能够选择样本大小进行检测。redis默认选择3个样本进行检测,你能够经过maxmemory-samples进行设置 样本数。

示例:maxmemory-samples 5

 

4三、appendonly

解释:是否启用aof持久化方式 。便是否在每次更新操做后进行日志记录,默认配置是no,即在采用异步方式把数据写入到磁盘,若是不开启,可能会在断电时致使部分数据丢失。

示例:appendonly no

 

4四、appendfilename

解释:更新日志文件名,默认值为appendonly.aof 。

示例:appendfilename "appendonly.aof"

 

4五、appendfsync

解释:aof文件刷新的频率。有三种:

            1)no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。

             2) always 每提交一个修改命令都调用fsync刷新到AOF文件,很是很是慢,但也很是安全。

             3) everysec 每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒之内的数据。

示例:appendfsync everysec

 

4六、no-appendfsync-on-rewrite

解释:指定是否在后台aof文件rewrite期间调用fsync,默认为no,表示要调用fsync(不管后台是否有子进程在刷盘)。Redis在后台写RDB文件或重写AOF文件期间会存在大量磁盘IO,此时,在某些linux系统中,调用fsync可能会阻塞。

示例:no-appendfsync-on-rewrite no

 

4七、auto-aof-rewrite-percentage

解释:当AOF文件增加到必定大小的时候Redis可以调用 BGREWRITEAOF 对日志文件进行重写 。当AOF文件大小的增加率大于该配置项时自动开启重写。

示例:auto-aof-rewrite-percentage 100

 

4八、auto-aof-rewrite-min-size

 

解释:当AOF文件增加到必定大小的时候Redis可以调用 BGREWRITEAOF 对日志文件进行重写 。当AOF文件大小大于该配置项时自动开启重写。

示例:auto-aof-rewrite-min-size 64mb

 

4九、aof-load-truncated

解释:redis在启动时能够加载被截断的AOF文件,而不须要先执行 redis-check-aof

工具。

 

示例:aof-load-truncated yes

 

50、lua-time-limit

解释:一个Lua脚本最长的执行时间,单位为毫秒,若是为0或负数表示无限执行时间,默认为5000。

示例:lua-time-limit 5000

相关文章
相关标签/搜索