您的位置:首页 > 数据库 > Redis

redis 配置文件redis.conf介绍

2017-03-30 21:49 483 查看
redis默认不是以守护进程的方式运行,我们可以更改配置文件 daemonize为yes启动守护进行,默认为no 






启动守护进程后,redis默认会将pid写入/var/run/redis.pid文件,我这里是/var/run/redis_6379.pid自动生成的。






redis绑定的主机地址(一般默认是自己本地的ip地址)localhost






protected-mode yes 默认开启保护模式,是否允许其他主机访问或者连接等。改为no即其他客户端可以连接本机redis服务端,或者可以配置上面的ip地址为其他客户端的地址来访问也可,或者设置redis密码







port 6379  这个就不用解释了,默认端口







tcp-backlog 511默认值 511

 此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度,
当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。建议修改为
2048,修改somaxconn,该内核参数默认值一般是128,对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。echo
2048 > /proc/sys/net/core/somaxconn 但是这样系统重启后保存不了在/etc/sysctl.conf中添加如下net.core.somaxconn
= 2048然后在终端中执行sysctl
-p







timeout 0  在客户端空闲时间为N秒后关闭连接(0禁用,即永不关闭)







tcp-keepalive 300

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

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

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

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

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






supervised no 可以通过upstart和systemd管理Redis守护进程,这个参数是和具体的操作系统相关的。

#如果从upstart或systemd运行Redis,Redis可以与您交互
选项:
#supervised no - 没有监督互动
#supervised upstart - 通过将Redis置于SIGSTOP模式来启动信号
#supervised systemd - signal systemd将READY = 1写入$ NOTIFY_SOCKET
#supervised auto - 检测upstart或systemd方法基于
#UPSTART_JOB或NOTIFY_SOCKET环境变量
#注意:这些监督方法只发出“进程就绪”的信号。







loglevel notice 日志等级,和log4j里面的debug info warn error等类似


指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,我这里默认为verbose







logfile 

日志记录文件,默认是标准输出stdout,如果redis以守护进程方式运行,logfile 配置为stdout时,logs将要输出到/dev/null


databases 16 

redis默认16个库,想要进哪个库 select 0,从0开始到15






save 900 1

save 300 10

save 60 10000




指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合

    save <seconds> <changes>

    Redis默认配置文件中提供了三个条件:

    save 900 1

    save 300 10

    save 60 10000

    分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。






stop-writes-on-bgsave-error yes  

如果启用如上的快照(RDB),在一个存盘点之后,可能磁盘会坏掉或者权限问题,redis将依然能正常工作







rdbcompression yes


是否将字符串用LZF压缩到.rdb
数据库中,如果想节省CPU资源可以将其设置成no,但是字符串存储在磁盘上占用空间会很大,默认是yes







rdbchecksum
yes


rdb文件的校验,如果校验将避免文件格式坏掉,如果不校验将在每次操作文件时要付出校验过程的资源新能,将此参数设置为no,将跳过校验









dbfilename
dump.rdb

转储数据的文件名






dir ./

redis的工作目录,它会将转储文件存储到这个目录下,并生成一个附加文件




slave-serve-stale-data
yes


当从主机脱离主的链接时,如果此值为yes当客户端查询从时,回响应客户端,如果是第一次同步回返回一个日期数据或这空值,如果设置为no,则返回“SYNC
with master in progress”到INFO and SLAVEOF







slave-read-only
yes  默认从服务器只读







repl-diskless-sync
no


新的从站和重连后不能继续备份的从站,需要做所谓的“完全备份”,即将一个RDB文件从主站传送到从站。这个传送有以下两种方式: 

1)硬盘备份:redis主站创建一个新的进程,用于把RDB文件写到硬盘上。过一会儿,其父进程递增地将文件传送给从站。 

2)无硬盘备份:redis主站创建一个新的进程,子进程直接把RDB文件写到从站的套接字,不需要用到硬盘。 

在硬盘备份的情况下,主站的子进程生成RDB文件。一旦生成,多个从站可以立即排成队列使用主站的RDB文件。在无硬盘备份的情况下,一次RDB传送开始,新的从站到达后,需要等待现在的传送结束,才能开启新的传送。 

如果使用无硬盘备份,主站会在开始传送之间等待一段时间(可配置,以秒为单位),希望等待多个子站到达后并行传送。 

在硬盘低速而网络高速(高带宽)情况下,无硬盘备份更好


repl-diskless-sync-delay5

当启用无硬盘备份,服务器等待一段时间后才会通过套接字向从站传送RDB文件,这个等待时间是可配置的。 

这一点很重要,因为一旦传送开始,就不可能再为一个新到达的从站服务。从站则要排队等待下一次RDB传送。因此服务器等待一段时间以期更多的从站到达。 

延迟时间以秒为单位,默认为5秒。要关掉这一功能,只需将它设置为0秒,传送会立即启动。


repl-ping-slave-period 10


从站以一个预先设置好的时间间隔向服务器发送PING。这个时间间隔可以通过repl_ping_slave_period选项改变。默认值是10秒。

slave-priority100


从站优先级是可以从redis的INFO命令输出中查到的一个整数。当主站不能正常工作时,redis
sentinel使用它来选择一个从站并将它提升为主站。 
低优先级的从站被认为更适合于提升,因此如果有三个从站优先级分别是10, 100, 25,sentinel会选择优先级为10的从站,因为它的优先级最低。 
然而优先级值为0的从站不能执行主站的角色,因此优先级为0的从站永远不会被redis sentinel提升。 
默认优先级是100







appendonly
no 是否开启AOF持久化模式









Units单位:

# 1k => 1000 bytes

# 1kb => 1024 bytes

# 1m => 1000000 bytes

# 1mb => 1024*1024 bytes

# 1g => 1000000000 bytes

# 1gb => 1024*1024*1024 bytes






单位对大小写不敏感

INCLUDES


包含

比如redis.conf是总闸

可以包含其他配置文件




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: