redis.conf
redis.conf 的配置文件中对具体的配置信息进行了模块区分:
1.通用(general)
2.快照(snapshotting)
3.复制(replication)
4.安全(security)
5.限制(limits)
6.追加模式(append only mode)
7.LUA脚本(lua scripting)
8.慢日志(slow log)
9.事件通知(event notification)
详细分析
1k => 1000 bytes
1kb => 1024 bytes
1m => 1000000 bytes
1mb => 1024*1024 bytes
1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes
// 配置文件里面对于大小不区分大小写,但是文件支持 bytes 而不是 bit
-------INCLUDES--------
include /path/to/other.conf// 配置外部引用配置文件
-------GENERAL--------
deamonize no// 是否以 deamon 形式运行,开启之后以后台模式运行
pidfile /path/to/redis.pid// 以 deamon 形式运行的时候输出的 pid 文件名称以及位置的设定
bind 0.0.0.0// 设定绑定的端口,默认情况下 redis 会相应本机所有的网卡请求
port 6379// 指定监听端口,0 将不会监听端口
timeout 0// 客户端超时时间,单位秒 ,0 永远不关闭
tcp-keepalive 0// 心跳机制,检测时长,0 不进行检测
loglevel notice// 日志等级 debug verbose notice warning
logfile “”// 日志的输出位置, “”将会进行标准输出,deamon 模式下 默认输出到 /dev/null
databases 16// 设置数据库的总数量
-------SNAPSHOTTING--------
save 900 1// 配置RDB规则,save <seconds> <changes>,删除配置项或者给一个空字符串用来关闭次功能
stop-writes-on-bgsave-error yes// 如果开启了RDB,如果RDB失败,则 redis 拒绝写请求,直至RDB成功;开启这个配置项 redis 将会在 RDB 报错的情况下继续接收写请求
rdbcompression yes// 是否对快照进行压缩处理
rdbchecksum yes// 是否对快照文件进行 CRC64算法进行校验
dbfilename dump.rdb// 设置快照名字
dir ./// 设置快照文件的存放位置
-------REPLICATION--------
slaveof// 主从复制的配置,关联一个主机
masterauth// 如果主机设置了密码校验
slave-serve-stale-data yes// 对失去主机连接或者正在同步主机,对外部请求的处理:yes 继续处理 ;no 拒接,对于INFO SLAVEOF 还是会继续进行处理
slave-read-only yes// 设置从机是否接收写入请求
repl-ping-slave-period 10// 设定从机向主机 ping 的周期
repl-timeout 60// 设定超时,这个数值应当比 repl-ping-slave-period 大
repl-disable-tcp-nodelay no// 设置是否禁用 tcp-nodelay,开启之后将会用低带宽进行数据同步
repl-diskless-sync no// 默认不使用 diskless,这个设置主要是对于数据同步时是否写 RDB file 文件,关闭之后对于网络要求比较高
repl-diskless-sync-delay 5// 如果不使用diskless ,将会直接通过 socket 进行传输,参数为等待时间
repl-backlog-size 1mb// 同步队列长度,作为一个缓冲区,用来存储需要缓冲的数据
repl-backlog-ttl 3600// 缓冲区数据存在的时间,超时将会被清理
slave-priority 100// slave 的优先级,数值越小级别越高,0 为关闭,默认 100,级别最高的将会在 master 挂掉之后继任
min-slaves-to-write 3// 设定检查 slave 中有大于等于 3 个延迟超过指定值,master 将会拒绝写请求
min-slaves-max-lag 10// 设定 延迟指定值 单位:second
-------SECURITY--------
requirepass aaaa// 设定连接密码
rename-command CONFIG “”// 数据库对于危险指令的限定选项,"" 是禁用的意思,也可以重命名,可以多条存在
-------LIMITS--------
maxclients 10000// 最大客户连接数
maxmemory// 设定 redis 最大内存使用量,如果达到既定容量将会移除内存中的数据,如果设定不能移除数据,将会对请求内存的操作返回错误信息
maxmemory-policy noeviction// 设定移除规则,有六种规则,noeviction 为 不进行移除
maxmemory-samples 3// 设定规则移除中的样本大小
-------APPEND ONLY MODE--------
appendonly no// 是否开启追加模式
appendfilename “appendonly.aof”// 设定aof文件的名字
appendfsync everysec// 设定追加操作的时间,no 系统随机;always 每次都,性能最低;everysec 每秒
no-appendfsync-on-rewrite no// yes 当 aof 执行 bgsave/bgwriteaof 时,fsync 将会被阻塞
auto-aof-rewrite-percentage 100// 什么时候进行重写操作,100%
auto-aof-rewrite-min-size 64mb// 多大之后执行重写操作
aof-load-truncated no// 对于aof文件的最后一个问题语句将会忽略,因为最后一个语句可能会因为停机的缘故出现不完整等问题
如果追加操作被执行为 always/everysec,将会造成很大的 Disk IO 操作,很可能会造成 fsync 的卡停;
-------LUA SCRIPTING--------
lua-time-limit 5000// 指定lua脚本的执行时长, 0 或 负数 将不会有时间限制
-------REDIS CLUSTER--------
cluster-enabled yes// 是否作为 一个集群节点运行
cluster-config-file node-6379.conf// 启动一个集群配置文件
cluster-node-timeout 15000// 设置集群节点超时时间,单位毫秒
cluster-migration-barrier 1// 设置master最少拥有超过1个slave时可以进行slave的迁移
cluster-require-full-coverage yes// 集群中有一个hashslot不能被covered时将会停止接收查询,no:可以继续接收
cluster-slave-validity-factor 10// 如果master挂掉之后,slave 将会尝试failover,0:忽略最后的交互时间,一直尝试 failover,正常情况下将会比较最后的交互时间
-------SLOW LOG--------
slowlog-log-slower-than 10000// 对执行查询命令的语句进行时间判断,单位:微秒; 负数 禁用此功能;0 强制记录每一个命令
slowlog-max-len 128// 设定日志队列的最大值,日志为一个 FIFO 队列,超过会删除最旧的日志
#为测试需要,将 slowlog-log-slower-than 设成了 10 微秒
redis> SLOWLOG GET
1) 1) (integer) 12 # 唯一性(unique)的日志标识符
2) (integer) 1324097834 # 被记录命令的执行时间点,以 UNIX 时间戳格式表示
3) (integer) 16 # 查询执行时间,以微秒为单位
4) 1) "CONFIG" # 执行的命令,以数组的形式排列
2) "GET" # 这里完整的命令是 CONFIG GET slowlog-log-slower-than
3) "slowlog-log-slower-than"
2) 1) (integer) 11
2) (integer) 1324097825
3) (integer) 42
4) 1) "CONFIG"
2) "GET"
3) "*"
3) 1) (integer) 10
2) (integer) 1324097820
3) (integer) 11
4) 1) "CONFIG"
2) "GET"
3) "slowlog-log-slower-than"
#... 最新的日志会被最先打印
启用 slow log 对调优很有帮助
-------EVENT ONTIFICATION--------
-------高级配置项--------
参考:
redis配置文件
Redis配置参数详解
Redis 配置文件 Redis.conf 参数说明
redis的配置文件详解redis.conf