您现在的位置是:网站首页> 编程资料编程资料

Redis3.2.6配置文件详细中文说明_Redis_

2023-05-27 358人已围观

简介 Redis3.2.6配置文件详细中文说明_Redis_

Redis3.2.6最新配置文件详细中文说明,啥都不说直接看说明

 ############## # 指定配置文件: ################################## INCLUDES ##################################### # # 1 包含文件 # 如果想要使用到配置文件,Redis服务必须以配置文件的路径作为第一个参数启动。如:./redis-server /path/to/redis.conf # 单位说明:当需要指定内存大小时,可能会使用到不同的单位,如1k、5GB、4M等,这里给出其单位含义: # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1000000 bytes # 1mb => 1024*1024 bytes # 1g => 1000000000 bytes # 1gb => 1024*1024*1024 bytes # s指定单位是大小写不敏感。如1GB、1gB、1Gb是一样的。 # include使用: # 用于include一个或多个配置文件。 # 当需要在一个标准的通用配置模板上进行一些个性化定制,则可以使用include 关键字来include这些个性化配置文件。 # 注意:虽然admin 或Redis Sentinel下执行的“CONFIG REWRITE”命令(Redis 2.8 引入的命令)会重写配置,但并不包含“include”关键字。也就是说“CONFIG REWRITE”覆盖“include”相关内容。 # 由于redis以最后的配置作为直接配置,所以建议将include命令放置在配置文件的最前面以防止配置被覆盖。 # 但是如果打算使用另外的配置文件来覆盖当前文件的部分或全部配置,那么则可将include命令放置到该文件的末尾。 # Redis这里使用了最后生效原则,即最后被解析的配置将作为最后的配置。 # 格式如下: # include /path/to/local.conf # include /path/to/other.conf ############## # 网络配置: # 对服务器网络相关的参数进行一个配置。 ################################## NETWORK ##################################### # # 1 bind命令 # 我们知道,一台服务器上可能有多个网络接口,所以如果没有使用bind指定接口,Redis将监听该机器上的所有网络接口的连接请求。 # 如果仅需要监听一个或多个指定的接口,则可以使用“bind”命令来指定接口。 # 实例如下: # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 ::1 # ~~~ WARNING ~~~ 如果运行Redis服务的机器直接暴漏在Internet中,那么绑定所有的接口是一件危险的事。因为这样会将Redis服务暴漏给Internet中的每一个人。所以默认情况下,使用bind 127.0.0.1命令强制Redis监听IPv4环回接口地址,也就是说Redis仅接受本机的客户端请求。 # 服务器可以有一个网络接口(通常表述为网卡),或者多个。假设某机器上有两个网卡,分别为192.168.205.5 和192.168.205.6,如果bind 192.168.205.5,那么只有该网卡地址接受外部请求,如果不绑定,则两个网卡口都接受请求。 # 如果需要进行外网访问则需注销该命令行。在配置文件中,“#”代表注释。 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bind 127.0.0.1 # 2 保护模式 # 保护模式是Redis提供的安全防护层。设立该层是为了避免网络对未关闭Redis实例的随意访问。 # 该模式需要开启,当: # 1) 没有使用“bind”命令明确需要绑定的地址; # 2) 没有为Redis配置密码。 # 该模式启动后,服务器仅能接受使用IPv4、IPv6环回地址(127.0.0.1或::1)和本地Socket的客户端的连接请求。 # 默认情况下,保护模式是开启的。建议只有在已明确待连接的客户端无需授权或无需使用bind指定特定的接口时才关闭该模式。 # 使用如下: protected-mode yes # 3 端口 # 在指定的端口上进行监听,默认是 6379。当端口设置为0时,Redis就不会在TCP socket上进行监听。 # 使用如下: port 6379 # 4 TCP listen() backlog设置 # 在一个并发量高的环境中,需要指定一个比较大的backlog值来避免慢连接情况的发生。注意,linux内核会默认使用/proc/sys/net/core/somaxconn值来减小backlog实际值。因此为了获得期望的值,需要确保增大 somaxconn 和 tcp_max_syn_backlog 这两个值。 # 建议配置: tcp-backlog 511 # 5 Unix socket # 指定Unix socket路径来进行连接监听。默认是不指定,因此redis不会在Unix socket上进行监听。 # 使用方法如下: # unixsocket /tmp/redis.sock # unixsocketperm 700 # 6 Client timeout # 当client在空闲N秒后,关闭该连接(0表示不处理空闲连接,默认方式) # 实例: timeout 0 # 7 TCP keepalive时间 # 当该值非零时,如果通信缺失,Redis会使用SO_KEEPALIVE发送TCP ACKs给客户端。这样做的好处有二: # 1)检测已经死亡对端。(TCP关闭存在无法完成4次握手的情况,如断电,断网,数据丢失等等) # 2)保存已有连接的活性。 # 在Linux中,该指定时间是一次发送ACKs的时间片。对于其他内核系统,其时间片大小与内核配置有关。 # 一个比较合理的值是300 seconds。Redis 3.2.1版本之后默认指定该值为300 seconds。 # 实例如下: tcp-keepalive 300 ############## # 通用配置: # 对一些通用参数进行配置。 ################################# GENERAL ##################################### # # 1 daemon # 默认情况下,Redis并不是一个守护进程,如果需要将Redis设置成守护进程,则可以使用daemonize yes进行配置。注意:当Redis作为守护进程时, 其pid 文件为 /var/run/redis.pid。 # 使用如下: daemonize no # 2 supervision # Redis 3.2新增命令。如果需要在机器启动(upstart模式 或systemd模式)时就启动Redis服务器,可以通过该选项来配置Redis。 # 支持的模式: # supervised no – 无,不会与supervised tree进行交互 # supervised upstart – 将Redis服务器添加到SIGSTOP 模式中 # supervised systemd – 将READY=1 写入 $NOTIFY_SOCKET # supervised auto – 根据环境变量UPSTART_JOB 或NOTIFY_SOCKET检测upstart 还是 systemd # 注意,上述supervision方法(upstart或systemd)仅发出“程序已就绪”信号,不会继续给supervisor返回ping回复。 # 默认是不开启: supervised no # 3 pid文件 # 如果指定了pid文件,Redis会在启动时写该pid文件,在退出时删除该文件。 # 当Redis服务器已守护进程启动时,如果指定了配置文件,则直接使用,如果没有指定,则创建/var/run/redis.pid作为配置文件。 # 使用如下: pidfile /var/run/redis_6379.pid # 4 日志级别 # 指定服务器的verbosity级别。Redis提供四种级别: # debug —- 包含大量信息,用于开发和测试 # verbose —- 包含一些稀有的有用信息,但没有debug级别混乱 # notice —- 适量提示信息,用于生产环境 # warning —- 只包含非常重要和关键的信息 # 默认是notice级别: loglevel notice # 5 日志文件名称 # 指定日志文件名称。指定为空时将输出到标准输出设备中。如果Redis以守护进程启动,当日志文件名称为空时,日志将会输出到 /dev/null。 # 默认设置如下: logfile "" # 6 写系统日志 # 6.1允许写系统日志 # 将syslog-enabled设置为yes时, 允许将Redis服务日志记录到系统日志中。此外,还 # 可以使用更多的日志参数来满足特定要求。 # 实例如下: # syslog-enabled no # 6.2指定在系统日志身份 # 一旦enable写入系统日志,可以指定服务在系统日志身份。实例如下: # syslog-ident redis # 6.3指定系统日志能力级别 # 系统日志级别必须是 LOCAL0 到 LOCAL7 之间(闭区间)的值。实例如下: # syslog-facility local0 # 7 数据库数量 # 设置数据库的数量。默认使用0号数据库。可以在每一个连接上使用SELECT  来指定另外的数据库,但是这个值必须在 0到 ‘database'-1之间。 # 实例如下: databases 16 ################ # 快照配置: # Redis提供快照功能,记录某一时刻数据库中保存的数据。 ################################ SNAPSHOTTING ################################ # # 1 DB持久化 # 将DB数据保存到磁盘。格式为:save 。当在规定的时间内seconds,如果写磁盘的次数超过了changes,则将DB数据保存到磁盘。如save 900 1表示在900秒内,如果对DB进行了至少一次写操作,则将DB数据持久化到磁盘上。 # 注意,可以通过注销所有save命令或将在所有save命令后追加save置空(save “”)命令来禁用save功能。使用示例: save 900 1 save 300 10 save 60 10000 # 2 bgsave-error # 默认情况下,在发生RDB快照或BGSAVE执行失败的那一刻,Redishi执行接收写请求。这会使用户察觉(通常比较困难)到数据没有正确的持久化到磁盘。否则有可能出现不被察觉的灾难性后果。 # 当后台BGSAVE程序可以再次开始工作时,Reidis会再次自动允许写入。 # 如果已经对Server和服务器持久化建立了正确的监控,那么当你禁用该功能后,即使磁盘、持久化等出现问题,Redis也能继续提供服务。 # 实例如下: stop-writes-on-bgsave-error yes # 3 rdbcompression # 默认情况下,在dump RDB文件时,Redis采用LZF(一种高效的压缩算法)算法进行字符串对象数据的压缩,其性能较高。虽然LZF算法会消耗部分CPU性能,但是其数据压缩能够较高,所以建议不要关闭: rdbcompression yes # 4 RDB文件名称 # 该命令用于定义dump DB文件的文件名。格式如下: dbfilename dump.rdb # 5 工作目录 # 指定RDB文件所在目录。该目录也是AOF文件所在目录。注意,这里是指定一个目录而不是文件名。默认是当前目录,格式如下: dir ./ ################## # 复制配置: # Redis提供主从复制功能保证数据的可靠性。 ################################# REPLICATION ################################### # # 1 主从关系建立 # Redis主从复制。单机模式下,Redis支持使用slaveof命令从另一个Redis服务器的拷贝中来创建一个实例。集群模式下则使用cluster replicate 命令。Redis复制使用前须知: # 1)Redis复制是异步复制,但是可以配置连接的从节点数量。 # 2)当连接断开,Redis从节点支持部分重同步(psync)功能来保证主从节点数据同步。 # 3)复制过程是一个自动化过程,无需人工干预。当出现网络分区后,从节点会自动尝试建立与主节点的连接,并尝试同步。 # 建立主从连接的命令如下: # slaveof  # 2 授权密码 # 当主节点开启密码保护时(通过配置"requirepass" 命令),从节点必须在开始复制同步前进行授权操作,否则其请求不会被接受。 # 命令如下: # masterauth  # 注意,该命令只有在主节点开启密码保护时才生效。 # 3 从节点是否支持脏读 # 当主从断开连接或主从进行复制时,从节点对外拥有两种策略: # 1)如果“slave-serve-stale-data”参数设置成“yes”(默认情况下),则从节点可以响应客户端请求,尽管可能会恢复过期数据或空数据(如果主从第一次进行同步)。 # 2)如果“slave-serve-stale-data”参数设置成“no”,则从节点会对除INFO 和SLAVEOF之外的命令返回"SYNC with master in progress"信息。 # 默认设置如下: slave-serve-stale-data yes # 4 从节点是否支持写入 # 指定从节点是否支持写操作。当需要存储一些临时数据时,让从节点支持写操作很有用。这样一来,就可以通过主从同步轻松的将已写入从节点的数据删除。但是,如果配置出错,也会出现客户端写入出错等问题。 # 注意,从Redis 2.6之后,从节点默认是只读的。 # 提示,只读的从服务器并不是设计给非信任的互联网客户端提供服务。这种模式的服务器设置只是一个用来防止对服务器实例进行误操作的保护层。默认情况下,只读从服务器能够输出管理员命令,如CONFIG、 DEBUG等。如果想限制只读从节点输出的管理型命令,可以通过'rename-command' 命令来隐藏这些管理员命令或危险命令。 # 提高它的安全性,使得她作为一个影子来执行管理或者危险的命令。默认设置如下: slave-read-only yes # 5 复制策略:有无磁盘 # 主从节点的数据同步策略有两种:磁盘同步、套接字同步。 # ——————————————————- # WARNING: 无磁盘复制(DISKLESS REPLICATION I)当前仍处于实验阶段 # ——————————————————- # # 对于新连接的slaves或断开重连的slaves将无法执行“部分同步”,需要进行一次完全同# 步。当进行完全同步时,主节点将传播一个RDB文件给从节点。该RDB文件的传播方式# 有两种: # 1)基于磁盘:Redis主节点创建一个新进程将RDB文件写到磁盘,然后将生成的RDB文件传播给从节点。 # 2)无磁盘:Redis主节点创建一个新进程直接将RDB文件写到slaves的套接字中,RDB文件无需落盘。 # 基于磁盘的复制,一旦RDB文件生成,多个slaves将排队等待并可以共享该文件。而无磁盘复制一旦开始传输数据,新slaves到来后将会排队等待。 # 在使用无磁盘复制时,主节点在开始传输同步数据前将根据配置的时间进行等待,从而实现多个从节点的并发传输。 # 在磁盘速度缓慢且网络速度很快(高带宽)时,无磁盘复制效率更高。默认情况下,无磁盘复制同步关闭。配置如下: repl-diskless-sync no # 6 无磁盘复制等待时间 # 无磁盘复制前,主节点需要等待的时间。该配置在启用无磁盘复制时将生效。 # 由于一旦开启一次数据传输,其余slaves将排队等待,所以最好让主节点等待一段时间,这样主节点就可对多个slaves并发传播数据。 # 等待的单位是秒(second),默认是5秒。一旦将其设置为0,主节点将会马上开始数据传输。默认配置如下: repl-diskless-sync-delay 5 # 7 slaves定时向master发送PING的时间片 # 默认情况下,slaves每10秒向master发送一次PING消息。可以根据网络等因素进行设置。该配置默认在配置文件中关闭: # repl-ping-slave-period 10 # 8 复制超时阈值 # 以下情境将使用到复制超时阈值: # 1) 从节点在执行SYNC期间,检测块文件传输超时 # 2) 从节点检测主节点离线(data、pings) # 3) 主节点检测从节点离线(REPLCONF ACK) # 必须要确保复制超时阈值(repl-timeout)大于slaves定时向master发送PING的时间片(repl-ping-slave-period),否则将总会检测到复制超时(当slave发送PING的时间片大于复制超时阈值时,slave还未发送ping就会被定性为复制超时)。使用格式如下: # repl-timeout 60 # 9 TCP_NODELAY功能 # 执行完SYNC后,是否要禁用TCP_NODELAY。 # 当禁用该功能后,Redis会使用占用更少带宽的小TCP包向从节点发送数据。但是这样做将会增大从节点端数据传输延时。在Linux下禁用TCP_NODELAY功能将导致40 微秒的延迟。 # 当启动该功能后,在进行复制时将会减少数据传输延迟,但是会占用更大的带宽。 # 默认情况下,我们优先选择低延迟,但是在高速网络或主从节点存在多hops路径时,建议禁用TCP_NODELAY功能。 # 默认开启TCP_NODELAY功能。格式如下: repl-disable-tcp-nodelay no # 10 复制积压缓冲区大小 # 设置复制积压缓冲区(replication backlog)大小。当slaves断开与节点连接后,Redis使用复制积压缓冲区记录需要未发送给slave的数据。当从节点重连后,仅需执行一次部分同步,将从节点缺失数据补全。 # 复制积压缓冲区(replication backlog)越大,Redis可以支持的slave离线时间就越长。复制积压缓冲区用于部分重同步。 # 复制缓冲区只有在有slave连接时才分配内存。没有slave时,该内存会被释放出来,默认大小为1m。格式如下: # repl-backlog-size 1mb # 11 复制积压缓冲区释放时间片 # 当主节点不再有新连接的从节点后,复制积压缓冲区将会被释放。为避免因从节点频繁掉线后上线而频繁的进行复制积压缓冲区的释放与申请,Redis提供复制积压缓冲区释放时间片(repl-backlog-ttl)参数,保证主节点在检测到从节点掉线后的规定时间内不会释放该缓冲区。 # 值为零时表示不会释放该复制积压缓冲区。 # 单位为秒,配置如下: # repl-backlog-ttl 3600 # 12 从节点优先级 # 使用整数表示从节点优先级。 # 当主节点无法正常工作后,Sentinel将使用该优先级在从节点中推选出新的主节点。 # 优先级对应的整数值越小,被推选成主节点的可能性更大。但是当优先级的值为零时表示该从节点不具备成为主节点的身份。 # 默认优先级为100。配置形式如下: slave-priority 100 # 13 从节点连接数及从节点延时设置 # 当主节点的已连接从节点数小于N且这些从节点延迟均大于M秒,该主节点将停止接收写请求。 # 从节点处于“online”状态,当且仅当延迟(通过计算距离上一次接收从节点的ping消息的时间间隔获得)小于指定的阈值。 # 这个选项配置不是用来保证N个部分接收写信息,而是为了在没有足够的从节点可用时,限制写丢失。 # 如需要至少需要3个从节点并在10s内可用,则设置: # min-slaves-to-write 3 # min-slaves-max-lag 10 # 一旦对这两个中的一个赋值为零,则该功能失效。 # 默认min-slaves-to-write 参数设置为0,即该功能默认不启用。 # 14 从节点指定的IP和port # Redis主节点可以通过多种途径显示已连接从节点的IP和port。如Sentinel 可以使用“INFO replication”命令来发现从节点实例;Master可以使用“ROLE”命令显示从节点IP和port信息等。 # slave获取IP和port的方式是: # IP:自动检测获取。当从节点连接主节点时,通过检查对应套接字地址获取。 # Port:从节点在复制中和主节点握手时需要使用到port。通常情况下,port即为连接时的port。 # 但是,当发生端口转发(port forwarding,转发一个网络端口从一个网络节点到另一个网络节点的行为)或使用NAT(Network Address Translation,网络地址转换)技术是,从节点需要被分配不同IP和port后才能被访问。 # 接下来的两个配置用来设置从节点的IP和port,用来告知主节点所指定的IP和port,这样INFO和ROLE 才能继续返回结果。 # 当需要重写IP和port时,则无需配置该选项。 # 配置格式如下: # slave-announce-ip 5.5.5.5 # slave-announce-port 1234 ############## # 安全配置: # Redis提供一些安全策略,尽量保证访问安全性。 ################################## SECURITY ################################### # # 1 认证密码 # Server在处理客户端命令前,该客户端需要提供提供认证密码。这在非可信网络环境中很有用。 # 为减少后台执行复杂度,这个选项一般都会被注释掉。因为大多数用户不需要授权。(如用户使用自己的服务器) # Warning: 由于Redis执行高效,所以外部用户每秒可以尝试认证15w次。也就是说,为避免密码被快送攻破,用户需要使用一个极其复杂的密码。 # 设置认证密码格式如下: # requirepass foobared # 2 命令重命名 # 重命名命令。 # 在一个共享环境中有必要对危险命令进行重命令,从而避免危险命令的滥用、无用。 # 如给CONFIG命令重新设置一个难以猜测的命令,这样这个命令就很难被普通用户使用的,但仍能被内部工具使用。 # 如: # rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 # 当然,有时需要禁用一些命令。可以通过将命令置空实现: # rename-command CONFIG "" # 注意
                
                

-六神源码网