zoukankan      html  css  js  c++  java
  • Redis -- 02 配置文件解析

    redis的配置文件为 redis.conf, 使用 ./redis-server /path/to/redis.conf 可以根据自定义的配置启动redis实例

    include // 引入其他配置文件, 将统一的配置放在一块,将不同的配置单独配置,然后引入相同的配置
    daemonize no  // yes为后台运行,no为控制台运行
    pidfile // pid文件的位置,由于redis可以启动多实例,每个实例要使用不同的一个pid文件,所以要指定此项
    port 6379 // 启动端口
    tcp-backlog 511  //此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。
     
    bind 127.0.0.1 // 监听的网卡 不设置的话是全部的网卡
     
    timeout 0  // 客户端无操作超时时间 0为永不超时
    tcp-keepalive 60  // 如果设置非0值,那么单位是秒,将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方建议值是60s
    loglevel notice // 指定服务器的日志类型: debug, verbose, notice, warning。 默认是notice
    logfile  // 指定日志的地方
    syslog-enabled // 是否写入系统日志
    syslog-ident  // 系统日志 类型标识
    databases 16 // 开多少个数据库 ,默认为0号数据库 , 用select 命令可以换db
    ----------------快照设置start-------------------------------
    save 60 1000   --在60s内有1000条写入就执行快照,该配置可以设置多次,满足其中一条即开始快照,一条以上就启用快照功能
    stop-writes-on-bgsave-error no   --如果快照写入失败(由于某些原因),Redis是否停止接收写操作(是或否)
    rdbcompression yes  // 是否使用LZF压缩STRING当写入rdb的时候
    rdbchecksum yes // 是否对rdb进行CRC64校验
    dir ./  -- 快照写到什么地方
    dbfilename dump.rdb   -- 内存快照的文件名
    ----------------快照设置end--------------------------------
    -----------------------AOF start---------------------------------
    appendonly no   --是否开启aof
    appendfsync everysec   -- aof文件的同步频率,取值为 always(每次写操作同步),everysec(每秒钟),no(由操作系统决定什么时候写入)
    no-appendfsync-on-rewrite no -- 是否在aof文件重写期间调用fsync
    appendfilename "appendonly.aof" // aof文件名
    auto-aof-rewrite-percentage 100 -- 指定重写aof文件的条件,超过上次rewrite文件大小的百分比
    auto-aof-rewrite-min-size 64mb --指定重写aof文件的条件,达到这个大小时才可以重写  auto-aof-rewrite-percentage  和 auto-aof-rewrite-min-size条件必须同时满足
    aof-load-truncated yes // redis在启动时可以加载被截断的AOF文件,而不需要先执行 redis-check-aof
    dir./   -- 文件所在的目录
    -----------------------AOF end----------------------------------
    -----------------------复制start----------------------------------
    slaveof $(ip) $(port) // 设置为谁的slave,将从master复制数据
    masterauth // 如果连接master 需要密码
    slave-serve-stale-data yes //  在从master复制的过程中 slave是否继续接受客户端的请求。。。 当slave服务器和master服务器失去连接后,或者当数据正在复制传输的时候,如果此参数值设置“yes”,slave服务器可以继续接受客户端的请求,否则,会返回给请求的客户端如下信息“SYNC with master in progress”
    slave-read-only yes //  slave是不是只读的
    repl-diskless-sync no // 当客户端连接master的时候,同步的方式。  如果设置为yes(无盘复制),master起一个后台进程将rdb通过socket写入slave。 如果设置为no,master起一个后台线程将rdb文件写入硬盘,然后将硬盘里的rdb文件发给slave
    repl-diskless-sync-delay 5 // 当使用无盘复制时,正在复制的时候,如果有新的slave到来了,排队,等待5s,让更多的slave一起开始下一次同步,设置为0的时候不等待
    repl-ping-slave-period 10  //salve每个10s发送PING给master
    repl-timeout 60 //复制超时时间
    repl-disable-tcp-nodelay  no // 在master和slave之间是否限制高带宽
    repl-backlog-size 1mb  // 当slave 失去连接之后,master会将命令缓存到backlog里,供slave重连的时候不需要全部同步数据,这个设置指定这个backlog的最大的大小。超出之后,slave重连时就不能不分同步了。
    repl-backlog-ttl 3600 // 当master不再连接任何slave时,backlog就可以释放了,这个配置指定了当没有slave之后多长时间开始释放。
    slave-priority 100 // slave 优先级, Sentinel会使用它作为master选举的因素。
    -----------------------复制end-----------------------------------
    ---------------------- 安全start-----------------------------------
    requirepass  // 密码
    rename-command // 命令重命名, 在一个共享环境下可以重命名相对危险的命令。比如把 CONFIG 重名为一个不容易猜测的字符
    -----------------------安全end------------------------------------
    -----------------------约束start-----------------------------------
    maxclients 10000  // 最大连接数
    maxmemory <bytes>  // redis 最大会占用多少内存
    maxmemory-policy noeviction  //  内存占用策略, 当内存不够时的内存移除策略
    -----------------------约束end------------------------------------
    -----------------------LUA 脚本start------------------------------
    lua-time-limit 5000   // 脚本超时时间  毫秒
    -----------------------LUA 脚本end-------------------------------
    -----------------------集群start-----------------------------------
    cluster-enabled yes   // 开启实例的集群能力
    cluster-config-file nodes-6379.conf  // 集群模式下,每个redis节点生成一个自己的集群配置文件,这个文件不需要人工修改,由redis自己维护。
    cluster-node-timeout 15000  // 集群模式时,当前节点在与其他节点保活探测时,多久没有响应时认为其他节点处于fail状态,上面是15秒。
    cluster-slave-validity-factor <factor> // 如果将该项设置为0,不管slave节点和master节点间失联多久都会一直尝试failover(设为正数,失联大于一定时间(factor*节点TimeOut),不再进行FailOver)。比如,如果节点的timeout设置为5秒,该项设置为10,如果master跟slave之间失联超过50秒,slave不会去failover它的master(意思是不会去把master设置为挂起状态,并取代它)。注意:任意非0数值都有可能导致当master挂掉又没有slave去failover它,这样redis集群不可用。在这种情况下只有原来那个master重新回到集群中才能让集群恢复工作。
    cluster-migration-barrier <count>: 一个master可以拥有的最小slave数量。该项的作用是,当一个master没有任何slave的时候,某些有富余slave的master节点,可以自动的分一个slave给它。
    cluster-require-full-coverage <yes/no>: 如果该项设置为yes(默认就是yes) 当一定比例的键空间没有被覆盖到(就是某一部分的哈希槽没了,有可能是暂时挂了)集群就停止处理任何查询操作。如果该项设置为no,那么就算请求中只有一部分的键可以被查到,一样可以查询(但是有可能会查不全)
    -----------------------集群end------------------------------------
    -----------------------慢查询日志start----------------------------
    slowlog-log-slower-than 10000  // 日志入口 微秒
    slowlog-max-len 128  // 日志大小限制
    -----------------------慢查询日志end-----------------------------
  • 相关阅读:
    设计模式的概念与作用
    动画回调函数未执行
    使用PathfindingProject Pro 4.0.10实现2D自动寻路
    一些概念和路径记录
    android 数据库添加字符串 添加失败 解决方案
    view的focusable属性改变设置是否可获取光标
    view的clickable属性和点击background颜色改变
    java中一对多 关联建表
    Android 自定义View
    Android 之常用布局
  • 原文地址:https://www.cnblogs.com/cookiezhi/p/5783375.html
Copyright © 2011-2022 走看看