Redis 配置文件详解

网络配置区域

########### NETWORK ###########
#监听地址,可以用空格隔开后多个监听IP
bind 0.0.0.0
bind 10.0.0.31 10.0.0.32    

#redis3.2之后加入的新特性
#在没有同时配置bind IP和密码的时候,redis只允许本地访问127.0.0.1:6379
#远程访问将提示警告信息并拒绝远程访问
#解决方法:1、设置 bind IP 2、设置密码 3、关闭保护模式 protected-mode no
protected-mode yes             

#监听端口
port 6379

#TCP达到最大连接数之后,server端收到client ack确认号之后的队列值。
tcp-backlog 511

#当客户端在这段时间内没有发出任何指令,那么server端关闭该连接
#客户端和Redis服务端的连接超时时间,默认是0,表示永不超时。
timeout 0 
                     
#在多次"侦探"后,如果对端300s仍不回复,将会关闭连接,否则连接将会被保持开启。
#tcp 会话保持时间
tcp-keepalive 300

通用配置区域

########### GENERAL ###########
#默认情况下 redis 不是作为守护进程运行的
#如果你想让它在后台运行,你就把它改成 yes ,它会写一个 pid 文件到 pidfile 所指定的文件里面
daemonize yes

#pid文件路径, daemonize yes 开启, pid 文件就会在该目录生成
pidfifile /apps/redis/run/redis_6379.pid

#和操作系统相关参数,可以设置通过upstart和systemd管理Redis守护进程
#centos 7以后都使用systemd,配置 supervised systemd
supervised no

#配置所要记录的日志级别 debug--->verbose--->notice--->warning
loglevel notice

#配置日志路径
logfifile "/app/redis/logs/redis_6379.log" 

#配置数据库的数量,默认16个数据库,用 0,1,2...15 表示
#用命令 SELECT NUM 进行数据库切换
databases 99

#在启动redis时是否显示redis的logo图标,以及日志是否显示redis的logo图标。
always-show-logo yes           

快照配置区域

########### SNAPSHOTTING ###########
#当Redis用作日志缓存的时候,不需要开启快照
save ""

#当Redis用作应用缓存的时候,需要开启快照
save 900 1       #在900秒内,有1~9个key发生变化,则重写rdb文件
save 300 10      #在300秒内,有10~9999个key发生变化,则重写rdb文件
save 60 10000    #在60秒内,累计达到或超过10000个key发生变化,则重写rdb文件

#当触发快照保存机制时,Redis会fork()出子进程把Redis内存数据写入磁盘,恰巧磁盘空间满了,从而导致后台快照保存失败
#后台快照失败的时候,是否停止新的数据的写入,yes为不允许写入,no为允许写入
stop-writes-on-bgsave-error no

#持久化为RDB文件时,是否压缩,"yes"为压缩,"no"则反之
rdbcompression yes

#是否开启RC64校验,默认是开启
rdbchecksum yes

#持久化后,RDB的文件名字
#如果Redis做伪集群,一台服务器跑两个Redis服务,则可以命名 dbfifilename dump_6379.rdb 带有端口号来区分
dbfifilename dump.rdb  

#RDB文件保存路径
#记得更改文件所有者、所属组 chown redis.redis -R /apps/redis/data
dir /apps/redis/data

出现 stop-writes-on-bgsave-error 该报错时,可能是配置文件 dir 目录下文件所有者、所属组权限不足。
或者
当内存空间满的时候,需要将内存数据写入磁盘,恰巧磁盘空间满了,导致新数据无法写入内存。
在这里插入图片描述
复制配置区域

########### REPLICATION ###########
#当本机的redis启用主从,且作为slave时,主要指定master的IP,以及master的port
slaveof <masterip> <masterport>

#如果主服务器有配置密码保护(使用下面的"requirepass"配置指令)
#那么可以在启动复制同步进程之前告诉从服务器进行身份验证,否则主服务器将拒绝从服务器的请求。
masterauth <master-password>

#当从库同主库失去连接或者复制正在进行,从机库有两种运行方式:
#1、如果replica-serve-stale-data设置为yes(默认设置),从库会继续响应客户端的读请求。
#2、如果replica-serve-stale-data设置为no,除去指定的命令之外的任何请求都会返回一个错误"SYNC with master in progress"
replica-serve-stale-data yes

#设置从库只读,只需在主库上设置,版本4以下的话,是slave-read-only yes,版本5以上如下所示
replica-read-only yes

#是否使用socket方式复制数据(无盘同步),新slave连接连接时候需要做数据的全量同步,redis server就要从内存dump出新的RDB文件,然后从master传到slave,有两种方式把RDB文件传输给客户端:
#1、基于硬盘(disk-backed):master创建一个新进程dump RDB,RDB完成之后由父进程(即主进程)传给slaves
#2、基于socket(diskless):master创建一个新进程直接dump RDB到slave的socket,不经过主进程,不经过硬盘
#基于硬盘的话,RDB文件创建后,一旦创建完毕,可以同时服务更多的slave,但是基于socket的话, 新slave连接到master之后得逐个同步数据。
#在磁盘较慢并且网络较快的时候,可以用diskless(yes),否则使用磁盘(no)
repl-diskless-sync no

#当有一主一从使用无盘同步开始前的延迟时间,等待30s,如果有新的slave那就进行请求 ,一起更新
repl-diskless-sync-delay 30

#slave根据master指定的时间进行周期性的PING监测,如果master不存活,slave接管master
repl-ping-slave-period 10

#复制连接的超时时间,需要大于repl-ping-slave-period,否则会经常报超时
repl-timeout 60

#在socket模式下是否在slave套接字发送SYNC之后禁用TCP_NODELAY
#如果选择yes,Redis将使用更少的TCP包和带宽来向slaves发送数据(数据包合并),但是这将使数据传输到slave上有延迟,Linux内核的默认配置会达到40毫秒
#如果选择no,数据传输到salve的延迟将会减少但要使用更多的带宽。
repl-disable-tcp-nodelay no

#复制缓冲区内存大小,只有在slave连接之后才分配内存。
repl-backlog-size 512mb  

#多久时间master没有slave连接,就清空backlog缓冲区。      
repl-backlog-ttl 3600  

#当master不可用,Sentinel会根据slave的优先级选举一个master,最低的优先级的slave,当选master,而配置成0,永远不会被选举。        
replica-priority 100           

安全配置区域

########### SECURITY ###########
#设置redis连接密码,可以foobared替换成123456,或有一些特殊字符需要双引号引起来"qwe123&^"
requirepass foobared

#重命名一些高危命令,将del重命名为lck
rename-command del lck

客户端配置区域

########### CLIENTS ###########
#Redis最大连接客户端
maxclients 10000

内存管理配置区域

########### MEMORY MANAGEMENT ###########
#最大内存,单位为bytes字节,8G内存的计算方式8(G)1024(MB)1024(KB)*1024(Kbyte)=8589934592
#需要注意的是slave的输出缓冲区是不计算在maxmemory内
maxmemory 8589934592

只追加模式配置区域

########### APPEND ONLY MODE###########、
#RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。
#Append Only File是另一种持久化方式,可以提供更好的持久化特性,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。
appendonly no

#AOF文件名,会放在前面指定的dir目录下
appendfifilename "appendonly.aof"

#aof持久化策略的配置
#no表示不执行fsync,由操作系统保证数据同步到磁盘
#always表示每次写入都执行fsync,以保证数据同步到磁盘
#everysec表示每秒执行一次fsync,可能会导致丢失这1s数据
appendfsync everysec           

#在aof rewrite期间,是否对aof新记录的append暂缓使用文件同步策略,主要考虑磁盘IO开支和请求阻塞时间。
#默认为no,表示"不暂缓",新的aof记录仍然会被立即同步,Linux的默认fsync策略是30秒
#如果为yes 可能丢失30秒数据,但由于yes性能较好而且会避免出现阻塞因此比较推荐。
no-appendfsync-on-rewrite no

#当Aof log增长超过指定百分比例时,重写AOF文件,设置为0表示不自动重写Aof日志
#第一次重写完50mb,需要增长100%,达到100mb再重写
#重写是为了使aof体积保持最小,但是还可以确保保存最完整的数据
auto-aof-rewrite-percentage 100

#第一次触发aof rewrite的最小文件大小,主要是减少aof的体积,避免数据创建完又删除。
auto-aof-rewrite-min-size 64mb

#是否加载由于其他原因导致的末尾异常的AOF文件(主进程被kill/断电等)
aof-load-truncated yes

#redis4.0新增RDB-AOF混合持久化格式,在开启了这个功能之后,AOF重写产生的文件将同时包含RDB格式的内容和AOF格式的内容,其中RDB格式的内容用于记录已有的数据,而AOF格式的内存则用于记录最近发生了变化的数据
#这样Redis就可以同时兼有RDB持久化和AOF持久化的优点(既能够快速地生成重写文件,也能够在出现问题时,快速地载入数据)。
aof-use-rdb-preamble no

LUA脚本配置区域

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

Redis集群配置区域

########### REDIS CLUSTER###########
#是否开启集群模式,默认是单机模式
cluster-enabled yes

#由node节点自动生成的集群配置文件
cluster-confifig-fifile nodes-6379.conf

#集群中node节点连接超时时间
cluster-node-timeout 15000

#在执行故障转移的时候可能有些节点和master断开一段时间数据比较旧,这些节点就不适用于选举为master,超过这个时间的就不会被进行故障转移
cluster-replica-validity-factor 10

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

#集群请求槽位全部覆盖,如果一个主库宕机且没有备库就会出现集群槽位不全,那么yes情况下redis集群槽位验证不全就不再对外提供服务,而no则可以继续使用但是会出现查询数据查不到的情况(因为有数据丢失)。
cluster-require-full-coverage no

慢日志配置区域

########### SLOW LOG ###########
#Slow log 是 Redis 用来记录查询执行时间的日志系统,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。

#以微秒为单位的慢日志记录,为负数会禁用慢日志,为0会记录每个命令操作。
slowlog-log-slower-than 10000

#记录多少条慢日志保存在队列,超出后会删除最早的,以此滚动删除
slowlog-max-len 128
127.0.0.1:6379> slowlog len    #获取当前慢日志的个数
127.0.0.1:6379> slowlog get    #获取当前慢日志
127.0.0.1:6379> SLOWLOG reset    #重置慢日志
127.0.0.1:6379> CONFIG GET *    #查看redis所有配置
127.0.0.1:6379> CONFIG SET maxmemory Num   #实时修改配置,重启服务失效 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值