redis配置 《新华字典》

前言:

  整理目前已知redis配置如下,肯定是不全,欢迎各位道友评论补充,共同完善redis配置字典,

后续我知道新配置也会继续维护补充

redis配置简介:


# 只有通过bind的IP来访问redis服务器,才允许连接Redis服务器。0.0.0.0d代表任意
bind 0.0.0.0

# 保护模式,与其他机器远程连接有关 
protected-mode no

# redis启用端口
port 6379

#确定TCP连接中已完成队列(3次握手之后)的长度,应小于Linux系统的/proc/sys/net/core/somaxconn的值,此选项默认值为511,而linux的somaxconn默认值为128,当并发量比较大且客户端反应缓慢的时候,可以同时提高这两个参数。
tcp-backlog 511

#设置超时时间 
timeout 0

#指定ACKs的时间周期,单位为秒,值非0的情况表示将周期性的检测客户端是否可用,默认值为60秒。
tcp-keepalive 300

#是否启用后台守护进程运行模式  
daemonize no

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

# 应用进程生成pid文件名和路径 
pidfile ./redis.pid

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

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

#设置数据库的数目。默认的数据库是DB 0 ,可以在每个连接上使用select  <dbid> 命令选择一个不同的数据库,dbid是一个介于0到databases - 1 之间的数值。 
databases 16

#保存数据到磁盘。格式是:save <seconds> <changes> ,含义是在 seconds 秒之后至少有 changes个keys 发生改变则保存一次。 当设置 save ""时候表示redis只作为缓存使用
#示例:
#save 900 1
#save 300 10
#save 60 10000
save ""

#默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘, 否则就会没人注意到灾难的发生。 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no 好了。
stop-writes-on-bgsave-error yes

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

#是否CRC64校验rdb文件,会有一定的性能损失(大概10%)。      
rdbchecksum yes

#rdb文件的名字。 
dbfilename dump.rdb

#默认数据存储路径 
dir ./

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

#设置slave是否是只读的。从2.6版起,slave默认是只读的。 
slave-read-only yes

#主从数据复制是否使用无硬盘复制功能。  
repl-diskless-sync no

#无磁盘diskless方式在进行数据传递之前会有一个时间的延迟,以便slave端能够进行到待传送的目标队列中,这个时间默认是5秒 
repl-diskless-sync-delay 5

#是否启用TCP_NODELAY,如果启用则会使用少量的TCP包和带宽去进行数据传输到slave端,当然速度会比较慢;如果不启用则传输速度比较快,但是会占用比较多的带宽。  
repl-disable-tcp-nodelay no

#slave端的优先级设置,值是一个整数,数字越小表示优先级越高。当master故障时将会按照优先级来选择slave端进行恢复,如果值设置为0,则表示该slave永远不会被选择。
slave-priority 100

#LRU 和 minimal TTL 算法都不是精准的算法,但是相对精确的算法(为了节省内存),随意你可以选择样本大小进行检测。redis默认选择3个样本进行检测,你可以通过maxmemory-samples进行设置 样本数。
maxmemory-policy volatile-lru

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

#更新日志文件名,默认值为appendonly.aof 。
 appendfilename "appendonly.aof"

#解释:aof文件刷新的频率。有三种:
#      1)no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。
#      2) always 每提交一个修改命令都调用fsync刷新到AOF文件,非常非常慢,但也非常安全。
#      3) everysec 每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒以内的数据。
appendfsync everysec

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

#当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写 。当AOF文件大小的增长率大于该配置项时自动开启重写。              
auto-aof-rewrite-percentage 100

#当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写 。当AOF文件大小大于该配置项时自动开启重写。 
auto-aof-rewrite-min-size 64mb

#redis在启动时可以加载被截断的AOF文件,而不需要先执行 redis-check-aof 工具。 
aof-load-truncated yes

#一个Lua脚本最长的执行时间,单位为毫秒,如果为0或负数表示无限执行时间,默认为5000。
lua-time-limit 5000

#配置redis做为一个集群节点来启动    
cluster-enabled yes

#每个集群节点都有一个集群配置文件,这个文件不需要编辑,它由redis节点来创建和更新。每个redis节点的集群配置文件不可以相同。  
cluster-config-file ./nodes.conf

#设置集群节点超时时间,如果超过了指定的超时时间后仍不可达,则节点被认为是失败状态,单位为毫秒。 
cluster-node-timeout 5000

#redis的slow log是一个系统OS进行的记录查询,它是超过了指定的执行时间的。执行时间不包括类似与client进行交互或发送回复等I/O操作,它只是实际执行指令的时间。 
#有2个参数可以配置,一个用来告诉redis执行时间,这个时间是微秒级的(1秒=1000000微秒),这是为了不遗漏命令。另一个参数是设置slowlog的长度,当一个新的命令被记录时,最旧的命令将会从命令记录队列中移除。 
slowlog-log-slower-than 10000
slowlog-max-len 128

#延迟监控,用于记录等于或超过了指定时间的操作,默认是关闭状态,即值为0。               
latency-monitor-threshold 0

# 事件通知,默认不启用,具体参数查看配置文件      
notify-keyspace-events ""

#当条目数量较少且最大不会超过给定阀值时,哈希编码将使用一个很高效的内存数据结构,阀值由以下参数来进行配置   
hash-max-ziplist-entries 512
hash-max-ziplist-value 64

#表示按照占用字节数来限定每个quicklist节点上的ziplist长度。这时,它只能取-1到-5这五个值 
#-2: 每个quicklist节点上的ziplist大小不能超过8 Kb。(-2是Redis给出的默认值)  
list-max-ziplist-size -2

#表示一个quicklist两端不被压缩的节点个数。这里的节点是指quicklist双向链表的节点,而不是指ziplist里面的数据项个数,0表示不压缩   
list-compress-depth 0

#集合sets在一种特殊的情况时有指定的编码方式,这种情况是集合由一组10进制的64位有符号整数范围内的数字组成的情况。以下选项可以设置集合使用这种特殊编码方式的size限制。
set-max-intset-entries 512

#与哈希和列表类似,有序集合也会使用一种特殊的编码方式来节省空间,这种特殊的编码方式只用于这个有序集合的长度和元素均低于以下参数设置的值时。  
zset-max-ziplist-entries 128 
zset-max-ziplist-value 64

#设置HyeperLogLog的字节数限制,这个值通常在0~15000之间,默认为3000,基本不超过16000    
hll-sparse-max-bytes 3000

#redis将会在每秒中抽出10毫秒来对主字典进行重新散列化处理,这有助于尽可能的释放内存 
activerehashing yes

#因为某些原因,client不能足够快的从server读取数据,那client的输出缓存限制可能会使client失连,这个限制可用于3种不同的client种类,分别是:normal、slave和pubsub。 
#进行设置的格式如下:
#client-output-buffer-limit <class><hard limit><soft limit><soft seconds>11
#如果达到hard limit那client将会立即失连。 
#如果达到soft limit那client将会在soft seconds秒之后失连。 
#参数soft limit < hard limit。  
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

#redis使用一个内部程序来处理后台任务,例如关闭超时的client连接,清除过期的key等等。它并不会同时处理所有的任务,redis通过指定的hz参数去检查和执行任务。 
#hz默认设为10,提高它的值将会占用更多的cpu,当然相应的redis将会更快的处理同时到期的许多key,以及更精确的去处理超时。 
#hz的取值范围是1~500,通常不建议超过100,只有在请求延时非常低的情况下可以将值提升到100。 
hz 10

#当一个子进程要改写AOF文件,如果以下选项启用,那文件将会在每产生32MB数据时进行同步,这样提交增量文件到磁盘时可以避免出现比较大的延迟。    
aof-rewrite-incremental-fsync yes

#补充的配置
#一个比较大的slave-validity-factor参数能够允许slave端使用比较旧的数据去failover它的master端,而一个比较小的值可能会阻止集群去选择slave端。 
#为获得最大的可用性,可以设置slave-validity-factor的值为0,这表示slave端将会一直去尝试failover它的master端而不管它与master端的最后交互时间。 
cluster-slave-validity-factor 0

#集群中的slave可以迁移到那些没有可用slave的master端,这提升了集群处理故障的能力。毕竟一个没有slave的master端如果发生了故障是没有办法去进行failover的。 
#要将一个slave迁移到别的master,必须这个slave的原master端有至少给定数目的可用slave才可以进行迁移,这个给定的数目由migration barrier参数来进行设置,默认值为1,表示这个要进行迁移的slave的原master端应该至少还有1个可用的slave才允许其进行迁移,要禁用这个功能只需要将此参数设置为一个非常大的值。  
cluster-migration-barrier 100

#默认情况下当redis集群节点发现有至少一个hashslot未被covered时将会停止接收查询。 
#这种情况下如果有一部份的集群down掉了,那整个集群将变得不可用。 
#集群将会在所有的slot重新covered之后自动恢复可用。 
#若想要设置集群在部份key space没有cover完成时继续去接收查询,就将参数设置为no。
cluster-require-full-coverage no

#与哈希类似,少量的lists也会通过一个指定的方式去编码从而节省更多的空间,它的阀值通过以下参数来进行配置。
list-max-ziplist-entries 512
list-max-ziplist-value 64

#集群节点的ip,redis集群对外提供服务和建立集群的IP
cluster-announce-ip 10.10.10.10

#集群节点映射端口,redis集群对外提供服务和建立集群的端口
cluster-announce-port 6379

#集群节点总线端口,集群节点间进行通讯的端口,默认服务端口+10000
cluster-announce-bus-port 16379



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值