redis30的配置文档格式.docx
《redis30的配置文档格式.docx》由会员分享,可在线阅读,更多相关《redis30的配置文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
要是配置里没有指定bind和密码。
开启该参数后,redis只会本地进行访问,拒绝外部访问。
要是开启了密码和bind,可以开启。
否则最好关闭,设置为no。
protected-modeyes
#redis的进程文件
pidfile/var/run/redis/redis-server.pid
#redis监听的端口号。
port6379
#此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度,当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。
当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。
该内核参数默认值一般是128,对于负载很大的服务程序来说大大的不够。
一般会将它修改为2048或者更大。
在/etc/sysctl.conf中添加:
net.core.somaxconn=2048,然后在终端中执行sysctl-p。
tcp-backlog511
#指定redis只接收来自于该IP地址的请求,如果不进行设置,那么将处理所有请求
bind127.0.0.1
#配置unixsocket来让redis支持监听本地连接。
#unixsocket/var/run/redis/redis.sock
#配置unixsocket使用文件的权限
#unixsocketperm700
#此参数为设置客户端空闲超过timeout,服务端会断开连接,为0则服务端不会主动断开连接,不能小于0。
timeout0
#tcpkeepalive参数。
如果设置不为0,就使用配置tcp的SO_KEEPALIVE值,使用keepalive有两个好处:
检测挂掉的对端。
降低中间设备出问题而导致网络看似连接却已经与对端端口的问题。
在Linux内核中,设置了keepalive,redis会定时给对端发送ack。
检测到对端关闭需要两倍的设置值。
tcp-keepalive0
#指定了服务端日志的级别。
级别包括:
debug(很多信息,方便开发、测试),verbose(许多有用的信息,但是没有debug级别信息多),notice(适当的日志级别,适合生产环境),warn(只有非常重要的信息)
loglevelnotice
#指定了记录日志的文件。
空字符串的话,日志会打印到标准输出设备。
后台运行的redis标准输出是/dev/null。
logfile/var/log/redis/redis-server.log
#是否打开记录syslog功能
#syslog-enabledno
#syslog的标识符。
#syslog-identredis
#日志的来源、设备
#syslog-facilitylocal0
#数据库的数量,默认使用的数据库是DB0。
可以通过”SELECT“命令选择一个db
databases16
################################SNAPSHOTTING################################
#快照配置
#注释掉“save”这一行配置项就可以让保存数据库功能失效
#设置sedis进行数据库镜像的频率。
#900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化)
#300秒(5分钟)内至少10个key值改变(则进行数据库保存--持久化)
#60秒(1分钟)内至少10000个key值改变(则进行数据库保存--持久化)
save9001
save30010
save6010000
#当RDB持久化出现错误后,是否依然进行继续进行工作,yes:
不能进行工作,no:
可以继续进行工作,可以通过info中的rdb_last_bgsave_status了解RDB持久化是否有错误
stop-writes-on-bgsave-erroryes
#使用压缩rdb文件,rdb文件压缩使用LZF压缩算法,yes:
压缩,但是需要一些cpu的消耗。
不压缩,需要更多的磁盘空间
rdbcompressionyes
#是否校验rdb文件。
从rdb格式的第五个版本开始,在rdb文件的末尾会带上CRC64的校验和。
这跟有利于文件的容错性,但是在保存rdb文件的时候,会有大概10%的性能损耗,所以如果你追求高性能,可以关闭该配置。
rdbchecksumyes
#rdb文件的名称
dbfilenamedump.rdb
#数据目录,数据库的写入会在这个目录。
rdb、aof文件也会写在这个目录
dir/var/lib/redis
#################################REPLICATION#################################
#复制选项,slave复制对应的master。
#slaveof<
masterip>
<
masterport>
#如果master设置了requirepass,那么slave要连上master,需要有master的密码才行。
masterauth就是用来配置master的密码,这样可以在连上master后进行认证。
#masterauth<
master-password>
#当从库同主机失去连接或者复制正在进行,从机库有两种运行方式:
1)如果slave-serve-stale-data设置为yes(默认设置),从库会继续响应客户端的请求。
2)如果slave-serve-stale-data设置为no,除去INFO和SLAVOF命令之外的任何请求都会返回一个错误”SYNCwithmasterinprogress”。
slave-serve-stale-datayes
#作为从服务器,默认情况下是只读的(yes),可以修改成NO,用于写(不建议)。
slave-read-onlyyes
#是否使用socket方式复制数据。
目前redis复制提供两种方式,disk和socket。
如果新的slave连上来或者重连的slave无法部分同步,就会执行全量同步,master会生成rdb文件。
有2种方式:
disk方式是master创建一个新的进程把rdb文件保存到磁盘,再把磁盘上的rdb文件传递给slave。
socket是master创建一个新的进程,直接把rdb文件以socket的方式发给slave。
disk方式的时候,当一个rdb保存的过程中,多个slave都能共享这个rdb文件。
socket的方式就的一个个slave顺序复制。
在磁盘速度缓慢,网速快的情况下推荐用socket方式。
repl-diskless-syncno
#diskless复制的延迟时间,防止设置为0。
一旦复制开始,节点不会再接收新slave的复制请求直到下一个rdb传输。
所以最好等待一段时间,等更多的slave连上来。
repl-diskless-sync-delay5
#slave根据指定的时间间隔向服务器发送ping请求。
时间间隔可以通过repl_ping_slave_period来设置,默认10秒。
#repl-ping-slave-period10
#复制连接超时时间。
master和slave都有超时时间的设置。
master检测到slave上次发送的时间超过repl-timeout,即认为slave离线,清除该slave信息。
slave检测到上次和master交互的时间超过repl-timeout,则认为master离线。
需要注意的是repl-timeout需要设置一个比repl-ping-slave-period更大的值,不然会经常检测到超时。
#repl-timeout60
#是否禁止复制tcp链接的tcpnodelay参数,可传递yes或者no。
默认是no,即使用tcpnodelay。
如果master设置了yes来禁止tcpnodelay设置,在把数据复制给slave的时候,会减少包的数量和更小的网络带宽。
但是这也可能带来数据的延迟。
默认我们推荐更小的延迟,但是在数据量传输很大的场景下,建议选择yes。
repl-disable-tcp-nodelayno
#复制缓冲区大小,这是一个环形复制缓冲区,用来保存最新复制的命令。
这样在slave离线的时候,不需要完全复制master的数据,如果可以执行部分同步,只需要把缓冲区的部分数据复制给slave,就能恢复正常复制状态。
缓冲区的大小越大,slave离线的时间可以更长,复制缓冲区只有在有slave连接的时候才分配内存。
没有slave的一段时间,内存会被释放出来,默认1m。
#repl-backlog-size5mb
#master没有slave一段时间会释放复制缓冲区的内存,repl-backlog-ttl用来设置该时间长度。
单位为秒。
#repl-backlog-ttl3600
#当master不可用,Sentinel会根据slave的优先级选举一个master。
最低的优先级的slave,当选master。
而配置成0,永远不会被选举。
slave-priority100
#redis提供了可以让master停止写入的方式,如果配置了min-slaves-to-write,健康的slave的个数小于N,mater就禁止写入。
master最少得有多少个健康的slave存活才能执行写命令。
这个配置虽然不能保证N个slave都一定能接收到master的写操作,但是能避免没有足够健康的slave的时候,master不能写入来避免数据丢失。
设置为0是关闭该功能。
#min-slaves-to-write3
#延迟小于min-slaves-max-lag秒的slave才认为是健康的slave。
#min-slaves-max-lag10
#设置1或另一个设置为0禁用这个特性。
#Settingoneortheotherto0disablesthefeature.
#Bydefaultmin-slaves-to-writeissetto0(featuredisabled)and
#min-slaves-max-lagissetto10.
##################################SECURITY###################################
#requirepass配置可以让用户使用AUTH命令来认证密码,才能使用其他命令。
这让redis可以使用在不受信任的网络中。
为了保持向后的兼