redis配置选项详解

redis 配置选项详解

bind 0.0.0.0 监听地址,可以用空格隔开后监听多个ip
protected-mode yes 
port 6379 监听端口,默认为6379/tcp
tcp-backlog 511 三次握手的时候server端收到client ack确认号之后的队列值,即全连接队列长度 ?
timeout 0 客户端和redis服务器的链接超时时间,默认0,即永不超时
tcp-keepalive 300 tcp会话保持时间300s
daemonize no 默认为no,即直接运行redis-server程序时,不作为守护进程运行,而是以前台方式运行,yes为后台运行,守护进程运行时候,会生成/var/run/redis.pid
pidfile /var/run/redis_6379.pid  pid 文件路径,可以修改
loglevel notice 日志级别
logfile "redis.log" 日志路径
database 16 设置数据库数量,默认为0-15 共有16个
always-show-logo yes  redis.log 中是否显示logo图标
#RDB相关
save 900 1 如果在900s内,有1个key内容更改,就执行快照
save 300 10 在300s内,有10个key更改,就执行快照
stop-writes-on-bgsave-error yes 当bgsave快照备份出错时,禁止redis写入操作
rdbcompression yes 持久化到RDB文件时,是否压缩,yes
rdbchecksum yes  是否对备份文件开启RC64校验,yes
dbfilename dump.rdb  快照文件名
dir  ./  快照文件保存路径 dir /apps/redis/data
#AOF相关
appendonly yes  是否开启AOF日志记录,默认为no
appendfilename "appendonly-${port}.aof"  aof文件名
appendfsync everysec  aof持久化策略,no 表示有操作系统去同步数据到磁盘,Linux默认的fsync策略是30秒,最多丢失30s数据;
									   always 表示当每次有数据写入,都会执行fsync,以保证数据同步到磁盘,安全性高,性能较差
									   everysec 表示每秒执行一次fsync,可能会导致丢失这1s数据,此为默认值,推荐生产环境使用
dir /PATH
no-appendfsync-on-rewrite yes 在aof rewrite 期间,是否对AOF新记录的append暂缓使用文件同步策略,默认值为no,表示不暂缓同步策略,新的aof记录仍然会被立即同步到磁盘,这样能保证数据安全性,不会丢数据,但是会产生阻塞问题;当设为yes,要暂缓AOF写入,此时相当appendfsync=no,即不立即同步,而由操作系统自己决定,默认30s后才同步,这样的话,有可能最多丢失30s的数,但是可以避免出现阻塞
auto-aof-rewrite-percentage 100 当aof log 增长超过指定百分比例时,触发aof rewrite ,若设置为0,表示不自动触发rewrite  
auto-aof-rewrite-min-size 64mb  触发aof rewrite 的最小文件大小,即小于64m时,不会触发rewrite
aof-load-truncated yes 是否加载由于某些原因导致的末尾异常的AOF文件(主进程被kill、断电等),建议yes
aof-use-rdbb-preamble no  redis4.0新增RDB-AOF混合持久化格式,开启后AOF重写产生的文件将同时半酣RDB格式的内容和AOF格式的内容,其中RDB格式的内容用于记录已有的数据,而AOF格式的内容则用于记录最近发生了变化的数据,这样redis就可以可同时兼有RDB持久化和AOF持久化的优点,默认为no不启用此功能

#replication 主从复制相关
replicaof <master ip> <master port> #指定复制的master主机ip和port
masterauth <master-password> #指定复制master主机的密码
replica-server-stale-data yes #当从库同主库失去链接或者复制正在进行,从库有两种运行方式:
								1、设置为yes(默认),从库会继续响应客户端的读请求,推荐
								2、设置为no,除去特定命令外的任何请求都会返回一个错误“SYNC with master in progress”
replica-read-only yes  #是否设置从库只读,建议设为yes,否则主库同步从库时可能会覆盖数据,造成数据丢失
repl-diskless-sync no $是否使用socket方式复制数据(无盘同步),新slave第一次链接master时需要做数据的全量同步,redis server 就要从内存dump出新的RDB文件,然后从master传到slave,有两种方式把RDB文件传输给客户端:
								1、基于硬盘(disk-backed):为no时,master创建一个新进程dump生成RDB磁盘文件,RDB完成之后有父进程(即主进程)将RDB文件发送给slaves,此为默认值
								2、基于socket(diskless):为yes, master创建一个新进程直接dump RDB至slave的网络socket,不经过主进程和硬盘。
								#推荐使用基于硬盘(no),因为RDB文件创建后,可以同时传输给更多的slave,但是基于socket(yes),新slave链接到master后要逐个同步数据。只有当磁盘I/O较慢且网络较快时,可用diskless(yes),否则一般建议使用磁盘(no)
repl-diskless-sync-delay 5 #diskless时复制的服务器等待的延迟时间,设置0为关闭,在延迟时间内到达的客户端,会一起通过diskless方式同步数据,但是可一旦复制开始,master节点不会在接受新的slave的复制请求,直到下一次同步开始才在接受新请求。即无法为延迟时间后到达的新副本提供服务,新副本将排队等待下一次RDB传输,因此服务器会等待一段时间才能让更多副本到达。
                           #推荐值30-60
repl-ping-replica-period 10 #slave 根据master指顶的时间进行周期性的PING MASSTER,用户监测MASTER的状态 ,默认10s
repl-timeout 60 #复制链接的超时时间,需要大于repl-ping-slave-period ,否则会经常报超时
repl-disable-tcp-noelay no #是否在slave套接字发送		
repl-backlog-size 512MB #复制缓冲区内存大小,当slave断开链接一段时间后,该缓冲区会累积复制副本数据,因此当slave重新链接时,通常不需要完全重新同步,只需要传递在副本中的断开链接后没有同步的部分数据即可。只有在至少有一个slave链接之后才分配此内存空间,建议建立中从时此值要调大一些或在低峰期配置,否则会导致同步到slave失败。
repl-priority 100 #当master不可用,哨兵sentinel会根据slave的优先级选举一个新的master,此值最低的slave会优先当选master,而配置成0,永远不会被选举,一般多个slave都设置一样的值,让其自动选择
min-replicas-to-write 3 #至少有3个可连接的slave,master才接受写操作
min-replicas-max-lag 10 #和上面至少3个slave的ping延迟不能草果10秒,否则master也将停止写操作
requirepass foobared #设置redis链接密码 ,之后需要AUTH pass,如果有特殊符号,用“” 引起来,生产建议设置
rename-command #重命名一些高危命令,如:rename-command flushall "" 即禁用命令 flushall 
									    rename-command del  xxx    即重命名del命令
maxclients 10000 #redis最大连接客户端

maxmemory <bytes> #redis使用的最大内存,单位为bytes字节,0为不限制,建议设为物理内存一半,8G内存的计算方式8(G)*1024(kb)*1024(bytes) 需要注意的是缓冲区是不计算在maxmemory内,生产中如果不设置此项,可能导致OOM

lua-time-limit 5000 #lua脚本的最大执行时间,单位为毫秒

cluster-enable yes #是否开启集群模式,默认不开启,即单机模式

cluster-config-file nodes-6379.conf #由node节点自动生成的集群配置文件名称

cluster-node-timeout 150000 #集群中node节点连接超时时间,单位ms,超过此时间,会提出集群

cluster-replica-validity-factor 10 #单位为次,在执行故障转移的时候可能有些节点和master断开一段时间导致数据比较旧,这些节点就不适用于选举为master,超过这个时间的就不会被进行故障转移,不能当选master,计算公式:()

cluster-migration-barrier 1 #集群迁移屏障,一个主节点至少有1个正常的从节点,即如果主节点的slave节点故障后会将多余的从节点分配在当前主节点成为其新的从节点。

cluster-require-full-coverage yes #集群请求槽位全部覆盖,如果一个主库宕机且没有备库就会出现槽位不全,那么yes,redis集群槽位验证不全,就不在对外提供服务(对key赋值时会出现 CLUSTERDOWN THE CLUSTER IS DOWN 的提示,cluster_state:fail,但ping仍PONG),而no则可以继续使用,但是会出现查询数据查不到的情况,因为有数据丢失。生产建议为no

cluster-replica-no-failover no #如果为yes,此选项阻止在主服务器发生故障时尝试对其主服务器进行故障转移。但是,主服务器仍然可以执行手动强制故障转移,一般为no 

slowlog-log-slower-then 10000 #以微秒为单位的慢日志记录,如果 为负数会禁用慢日志,为0会记录每个命令操作。默认值为10ms,一般一条命令执行都在微秒级别,生产建议设为1ms~10ms之间。

slowlog-max-len 128 #最短记录多少条慢日志的保存队列长度,达到此长度后,记录新命令会将最旧的命令从命令队列中删除,以此滚动删除,即,先进先出,队列固定长度,默认128的值偏小,生产建议设为1000以上
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值