单位
#当你需要为某个配置项指定内存大小的时候,必须要带上单位,1024 bytes1024*1024 bytes
文件引入
#引入其他的配置文件
模块加载
#启动时加载模块
网络
#指定redis只能接受来自此IP绑定的网卡的请求,注意此默认值默认外网是不可访问的
#是否开启保护模式。如果没有指定bind和密码,redis只会本地进行访问,拒绝外部访问。
#默认端口,建议生产环境不要使用默认端口避免被恶意扫描到
#TCP连接中已完成队列(完成三次握手之后)的长度
#配置unix socket来让redis支持监听本地连接。
#配置unix socket使用文件的权限
#客户端连接空闲超过timeout将会被断开,为0则断开
#tcp keepalive参数
基本配置
#是否后台启动
#可以通过upstart和systemd管理Redis守护进程
#配置PID文件路径
#日志级别
#日志文件
#是否打开记录syslog功能
#syslog标识符
#日志的来源
#数据库的数量,默认使用的数据库是DB 0
#是否一直显示logo
数据持久化RDB
#保存数据到磁盘:#save
#Will save the DB if both the given number of seconds and the given
#In the example below the behaviour will be to save:
#15分钟有一个key发生变化就保存数据到磁盘
#5分钟有10个key发生变化就保存数据到磁盘
#1分钟有10000个key发生变化就保存数据到磁盘
#Note: you can disable saving completely by commenting out all “save” lines.
#还可以删除所有以前配置的保存。
save 900 1
#持久化出现错误后,是否依然进行继续进行工作
#是否校验rdb文件
#使用压缩rdb文件,rdb文件压缩使用LZF压缩算法,
#rdb文件名称
#rdb使用上面的“dbfilename配置指令的文件名保存到这个目录
主从复制
#指定主节点。旧版本是:slaveof
#replicaof
#master的密码
#当一个slave失去和master的连接,或者同步正在进行中,slave的行为有两种可能:
#配置从是否为只读,开启后从则不能写入数据,旧版本是:slave-read-only yes
#同步策略: 磁盘或socket,默认磁盘方式
repl-diskless-sync no
#如果非磁盘同步方式开启,可以配置同步延迟时间,以等待master产生子进程通过socket传输RDB数据给slave。
#slave根据指定的时间间隔向master发送ping请求。默认10秒。
#同步的超时时间
#是否在slave套接字发送SYNC之后禁用 TCP_NODELAY
#设置数据备份的backlog大小
#从最后一个slave断开开始计时多少秒后,backlog缓冲将会释放。
#优先级
#如果master少于N个延时小于等于M秒的已连接slave,就可以停止接收写操作。
安全
#密码
#命令重命名
限制
#设置最多同时连接的客户端数量
#内存限制
#如果达到上方最大的内存限制,Redis如何选择删除key
#LRU和最小TTL算法的样本个数
懒删除
#内存满逐出
持久化方式AOF
#每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件
appendonly no
#AOF文件名称
#fsync() 系统调用告诉操作系统把数据写到磁盘上,而不是等更多的数据进入输出缓冲区。
#如果AOF的同步策略设置成 “always” 或者 “everysec”,并且后台的存储进程(后台存储或写入AOF 日志)会产生很多磁盘I/O开销。某些Linux的配置下会使Redis因为 fsync()系统调用而阻塞很久。
#自动重写AOF文件。如果AOF日志文件增大到指定百分比,Redis能够通过 BGREWRITEAOF 自动重写AOF日志文件。
auto-aof-rewrite-percentage 100
#如果设置为yes,如果一个因异常被截断的AOF文件被redis启动时加载进内存,redis将会发送日志通知用户
aof-load-truncated yes
#加载时Redis识别出AOF文件以“REDIS”开头字符串,
Lua脚本配置
#Lua 脚本的最大执行毫秒数
lua-time-limit 5000
集群
#开启redis集群
#配置redis自动生成的集群配置文件名。确保同一系统中运行的各redis实例该配置文件不要重名。
#集群节点超时毫秒数
#如果数据太旧,集群中的不可用master的slave节点会避免成为备用master。如果slave和master失联时间超过:(node-timeout * slave-validity-factor) + repl-ping-slave-period则不会被提升为master。
#只有在之前master有其它指定数量的工作状态下的slave节点时,slave节点才能提升为master。默认为1(即该集群至少有3个节点,1 master+2 slaves,master宕机,仍有另外1个slave的情况下其中1个slave可以提升)
#默认情况下如果redis集群如果检测到至少有1个hash slot不可用,集群将停止查询数据。
#选项设置为yes时,会阻止replicas尝试对其master在主故障期间进行故障转移
Docker集群配置
#默认情况下,Redis会自动检测自己的IP和从配置中获取绑定的PORT,告诉客户端或者是其他节点。
慢查询日志
#记录超过多少微秒的查询命令
#记录大小,可通过SLOWLOG RESET命令重置
延时监控系统
#记录执行时间大于或等于预定时间(毫秒)的操作,为0时不记录
latency-monitor-threshold 0
事件通知
#Redis能通知 Pub/Sub 客户端关于键空间发生的事件,默认关闭
内部数据结构
#当hash只有少量的entry时,并且最大的entry所占空间没有超过指定的限制时,会用一种节省内存的
#当取正值的时候,表示按照数据项个数来限定每个quicklist节点上的ziplist长度。比如,当这个参数配置
#这个参数表示一个quicklist两端不被压缩的节点个数。
#set有一种特殊编码的情况:当set数据全是十进制64位有符号整型数字构成的字符串时。
#与hash和list相似,有序集合也可以用一种特别的编码方式来节省大量空间。
#HyperLogLog稀疏结构表示字节的限制。该限制包括
#Streams宏节点最大大小/项目。流数据结构是基数编码内部多个项目的大节点树。使用此配置
#启用哈希刷新,每100个CPU毫秒会拿出1个毫秒来刷新Redis的主哈希表(顶级键值映射表)
#客户端的输出缓冲区的限制,可用于强制断开那些因为某种原因从服务器读取数据的速度不够快的客户端
#客户端查询缓冲区累积新命令。它们仅限于固定的默认情况下,
#在Redis协议中,批量请求,即表示单个的元素strings,通常限制为512 MB。
#默认情况下,“hz”的被设定为10。提高该值将在Redis空闲时使用更多的CPU时,但同时当有多个key
#开启动态hz
#当一个子进程重写AOF文件时,如果启用下面的选项,则文件每生成32M数据会被同步
#当redis保存RDB文件时,如果启用了以下选项,每生成32 MB数据,文件将被fsync-ed。
碎片整理
#启用主动碎片整理
#启动活动碎片整理的最小碎片浪费量
#启动碎片整理的最小碎片百分比
#使用最大消耗时的最大碎片百分比
#在CPU百分比中进行碎片整理的最小消耗
#磁盘碎片整理的最大消耗
#将从主字典扫描处理的最大set / hash / zset / list字段数