1、INCLUDES配置
# include /path/to/other.conf # 引入公共的配置信息
2、NETWORK配置(网络)
# bind 127.0.0.1
ip地址的绑定(bind) ,默认情况bind=127.0.0.1只能接受本机的访问请求。不写的情况下,无限制接受任何ip地址的访问。生产环境肯定要写你应用服务器的地址
protected-mode no
如果开启了protected-mode,那么在没有设定bind ip且没有设密码的情况下,Redis只允许接受本机的相应
tcp-backlog 511
可以理解是一个请求到达后至到接受进程处理前的队列
backlog队列总和=未完成三次握手队列+ 已经完成三次握手队列
高并发环境tcp-backlog设置值跟超时时限内的Redis吞吐量决定
timeout 0 # 一个空闲的客户端维持多少秒会关闭,0为永不关闭
tcp-keepalive 300 #对访问客户端的一种心跳检测,每个n秒检测一次(官方推荐设为60秒)
3、GENERAL配置(常规)
daemonize yes # 是否以后台进程启动
pidfile /var/run/redis_6379.pid # 存放pid文件的位置,每个实例会产生一个不同的pid文件
loglevel notice # 四个级别根据使用阶段来选择,生产环境选择notice 或者warning
logfile "" # 日志文件名称
# syslog-enabled no # 是否将Redis日志输送到linux系统日志服务中
# syslog-ident redis #日志的标志
# syslog-facility local0 # 输出日志的设备
databases 16 # 设定库的数量默认16
4、SNAPSHOTTING配置(rdb快照)
save 900 1 # 900秒(15分钟)之后至少1个关键字发生变化
save 300 10 # 300秒(5分钟)之后至少10个关键字发生变化
save 60 10000 # 60秒(1分钟)之后至少10000个关键字发生变化
stop-writes-on-bgsave-error yes # 当Redis无法写入磁盘的话,直接关掉Redis的写操作
rdbcompression yes #使用LZF压缩rdb文件
rdbchecksum yes #存储和加载rdb文件时校验
dbfilename dump.rdb #设置rdb文件名
dir ./ #设置工作目录,rdb文件会写入该目录
5、REPLICATION配置(主从复制)
# slaveof <masterip> <masterport> # 设为某台机器的从服务器
# masterauth <master-password> # 连接主服务器的密码
slave-serve-stale-data yes # 当主从断开或正在复制中,从服务器是否应答
slave-read-only yes # 设置从服务器只读
repl-diskless-sync-delay 5
# repl-ping-slave-period 10 #从ping主的时间间隔,秒为单位
# repl-timeout 60 #主从超时时间(超时认为断线了),要比period大
repl-disable-tcp-nodelay no #主端是否合并数据,大块发送给slave
slave-priority 100 #如果master不能再正常工作,那么会在多个slave中,选择优先值最小的一个slave提升为master,优先值为0表示不能提升为master
6、SECURITY配置(安全)
# requirepass foobared # 设置密码
7、LIMITS配置(限制)
# maxclients 10000 # 最大客户端连接数
# maxmemory <bytes> # 最大使用内存
# maxmemory-policy noeviction #内存到极限后的处理
volatile-lru -> LRU算法删除过期key, 只对设置了过期时间的键
allkeys-lru -> LRU算法删除key(不区分过不过期)
volatile-random -> 在过期集合中移除随机的key,只对设置了过期时间的键
allkeys-random -> 随机删除key(不区分过不过期)
volatile-ttl -> 移除那些TTL值最小的key ,删除快过期的key
noeviction -> 不进行移除。针对写操作,只是返回错误信息
# maxmemory-samples 5 #设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小; 一般设置3到7的数字,数值越小样本越不准确,但是性能消耗也越小
8、APPEND ONLY MODE配置(aof)
appendonly no #是否生成aof日志
appendfilename "appendonly.aof" # AOF文件的保存路径,同RDB的路径一致
# appendfsync always #始终同步,每次Redis的写入都会立刻记入日志
appendfsync everysec #每秒同步,每秒记入日志一次,如果宕机,本秒的数据可能丢失
# appendfsync no #不主动进行同步,把同步时机交给操作系统
no-appendfsync-on-rewrite no #在aof rewrite期间,是否对aof新记录的append暂缓使用文件同步策略,主要考虑磁#盘IO开支和请求阻塞时间。默认为no表示”不暂缓”,新的aof记录仍然会被立即同步。设为yes,则其他线程的数据放内存里,合并写入(速度快,容易丢失的多)
auto-aof-rewrite-percentage 100 #当Aof log增长超过指定比例时,重写aof文件。100表示一倍(0表示不自动重写)
auto-aof-rewrite-min-size 64mb #当前大小>=64mb(默认) ,重写aof文件
9、SLOW LOG配置(慢查询)
slowlog-log-slower-than 10000 #记录响应时间大于10000微秒的慢查询
slowlog-max-len128 #最多记录128条