redis-redis.conf 分析

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值