Redis3.0.5配置文件详解
# Redis 配置文件:版本3.0.5
# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# 内存配置大小写是一样的.比如 1gb 1Gb 1GB 1gB
################## INCLUDES #####################
# 引入多个配置文件。如,在已有标准模板的同时,还需要自定义配置文件。
# 注意:include进来的配置文件不会被admin或Sentinel的CONFIG REWRITE命令重写。
# include最好放在配置文件的前端。
# include /path/to/local.conf
################## GENERAL #####################
# 默认情况下,Redis不会作为守护进程运行。如果需要,把该项的值更改为yes
# 由于redis以最终的配置作为实际配置,因此我们希望你将include命令放置在配置文件的最前面以防配置被覆盖。如果你打算使用另外的 conf文件来覆盖当前文件的配置,那么最好将include指令放置到该文件的末尾。即最后生效原则,最后被解析的配置将作为最后的配置。
daemonize yes
# 当Redis作为守护进程运行时,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。
pidfile /var/run/redis.pid
# 当运行多个redis服务时,需要指定不同的pid文件和端口
# 指定redis运行的端口,默认是6379。当为0时,Redis将不会通过TCP socket监听。
# 注:只是不使用TCP socket监听。依旧可以连接,只是无法通过网络连接。
port 6379
# TCP 监听积压区backlog
# 在一个并发量高的环境中,你需要指定一个比较大的backlog值来避免慢连接(由于网络原因握手速度慢)的情况。
# 注意,linux内核会默认 使用/proc/sys/net/core/somaxconn 的值来削减 backlog的实际值,因此你需要确保提升 somaxconn 和 tcp_max_syn_backlog 这两个值来确保此处的backlog生效。
# 注:这里的backlog是指目前最大连接队列的积压区。因为TCP连接是三次握手,没有
# 完成三次握手和尚未被accept的connect都会处于连接队列中。但是backlog的实际值
# 与操作系统相关,并非设置多少就是多少,只能说调整得大一些可以在同一时间应对更
# 多的连接请求。
# 注:只有当每一个请求都重新发起一个连接的时候,backlog值的增大才能影响到并发量。在tcp稳定连接的时候,或连接复用(连接池的使用),backlog值对并发没有任何影响。因此该值一般采用默认值。
tcp-backlog 511
# 默认情况下redis会在所有的可用网络接口中进行监听,如果你想让redis在指定的网络接口中监听,那么可以使用bind 命令来指定redis的监听接口。
# 在生产环境中最好设置该项
# bind 127.0.0.1
# 指定unix sock的路径来进行连接监听,默认是不指定,因此redis不会在unix socket上进行监听。
# unixsocket /tmp/redis.sock
# unixsocketperm 755
# 设置客户端连接时的超时时间(关闭掉空闲N秒的连接),单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接。
# 0是关闭此设置,不处理空闲连接。
timeout 0
# TCP keepalive
#如果该值不为0,将使用 SO_KEEPALIVE 这一默认的做法来向客户端连接发送TCP ACKs
#这样的好处有以下两个原因:
# 1)检测已经死亡的对端(注:TCP的关闭会存在无法完成4次握手的情况,如断电,断网,数据丢失等等)
# 2)保持连接在网络环境中的存活
# 注:最好设置为60
tcp-keepalive 60
# 指定日志记录级别
# Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
# debug 记录很多信息,用于开发和测试
# varbose 有用的信息,不像debug会记录那么多
# notice 普通的verbose,常用于生产环境
# warning 只有非常重要或者严重的信息会记录到日志
loglevel debug
# 配置log文件地址
# 默认值为stdout,标准输出,若守护进程模式会输出到/dev/null
# logfile stdout
logfile /var/log/redis/redis.log
# 当设置 'syslog-enabled'为 yes时, 允许记录日志到系统日志中。
# 以及你可以使用更多的syslog参数来满足你的要求。
# syslog-enabled no
# 指定在系统日志中的身份
# syslog-ident redis
# 执行系统日志的设备名。 Must be USER or between LOCAL0-LOCAL7.
# syslog-facility local0
# 设置数据库编号
# 默认值为16,默认数据库为0,数据库范围在0-(database-1)之间
databases 16
#################### SNAPSHOTTING #####################
# 保存数据到磁盘,格式如下:
# save <seconds> <changes>
# 指出在多长时间内,有多少次更新操作,就将数据同步到数据文件rdb。
# 相当于条件触发抓取快照,这个可以多个条件配合
# 比如默认配置文件中的设置,就设置了三个条件:
# save 900 1 900秒内至少有1个key被改变
# save 300 10 300秒内至少有300个key被改变
# save 60 10000 60秒内至少有10000个key被改变
# 注:生产环境中需要关掉所有此项以减少磁盘IO压力。而使用主动的BGSAVE操作进行持久化操作。
save 900 1
save 300 10
save 60 10000