zoukankan      html  css  js  c++  java
  • Redis 配置项

    bind 0.0.0.0  # 监听地址,可以用空格隔开后多个监听IP

     

    protected-mode yes  # redis3.2 之后加入的新特性,在没有设置bind IP和密码的时候,redis只允许访问 127.0.0.1:6379,远程访问将提示警告信息并拒绝远程访问

     

    port 6379  # 监听端口

     

    tcp-backlog 511  # 三次握手的时候server端收到client ack确认号之后的队列值。 timeout 0 #客户端和Redis服务端的连接超时时间,默认是0,表示永不超时。

     

     

    tcp-keepalive 300  # tcp 会话保持时间

     

    daemonize no  # 默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes,当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面

     

    supervised no  # 和操作系统相关参数,可以设置通过upstart和systemd管理Redis守护进程,centos 7以后都使用 systemd

     

    pidfile /var/run/redis_6379.pid  # pid文件路径 loglevel notice #日志级别

     

    logfile ""  # 日志路径

     

    databases 16  # 设置db 库数量,默认16个库

     

    always-show-logo yes  # 在启动redis 时是否显示log

     

    save 900 1  # 在900秒内有一个键内容发生更改就出就快照机制

    save 300 10

    save 60 10000

     

     

    stop-writes-on-bgsave-error no  # 快照出错时是否禁止redis 写入操作

     

    rdbcompression yes   # 持久化到RDB文件时,是否压缩,"yes"为压缩,"no"则反之 rdbchecksum yes #是否开启RC64校验,默认是开启

     

    dbfilename dump.rdb  # 快照文件名 dir ./ #快照文件保存路径

     

    replica-serve-stale-data yes  # 当从库同主库失去连接或者复制正在进行,从机库有两种运行方式:

    1、如果replica-serve-stale-data设置为yes(默认设置),从库会继续响应客户端的读请求。

    2、如果replica-serve-stale-data设置为no,除去指定的命令之外的任何请求都会返回一个错误"SYNC with master in progress"

     

     

    replica-read-only yes  # 是否设置从库只读

     

    repl-diskless-sync no  # 是否使用socket方式复制数据(无盘同步),新slave连接时候需要做数据的全量同步, redis server就要从内存dump出新的RDB文件,然后从master传到slave,有两种方式把RDB文件传输给客户端:

    1、基于硬盘(disk-backed):master创建一个新进程dump RDB,RDB完成之后由父进程(即主进程)传给 slaves

    2、基于socket(diskless):master创建一个新进程直接dump RDB到slave的socket,不经过主进程,不经过硬盘。 基于硬盘的话,RDB文件创建后,一旦创建完毕,可以同时服务更多的slave,但是基于socket的话, 新slave连接到master之后得逐个同步数据。 在磁盘较慢并且网络较快的时候,可以用diskless(yes),否则使用磁盘(no)

     

     

    repl-diskless-sync-delay 30  # diskless复制的延迟时间,设置0为关闭,在延迟时间内连接的新客户端,会一起通过disk方式同步数据,但是一旦复制开始还没有结束之前,master节点不会再接收新slave的复制请求,直到下一次同步开始

     

    repl-ping-slave-period 10  # slave根据master指定的时间进行周期性的PING 监测

     

    repl-timeout 60  # 复制连接的超时时间,需要大于repl-ping-slave-period,否则会经常报超时

     

    repl-disable-tcp-nodelay no  # 在socket模式下是否在slave套接字发送SYNC之后禁用 TCP_NODELAY,如果选择“yesRedis将使用更少的TCP包和带宽来向slaves发送数据,但是这将使数据传输到slave上有延迟,Linux内核的默认配置会达到40毫秒,如果你选择了"no" 数据传输到salve的延迟将会减少但要使用更多的带宽

     

    repl-backlog-size 512mb  # 复制缓冲区内存大小,只有在slave连接之后才分配内存

     

    repl-backlog-ttl 3600  # 多次时间master没有slave连接,就清空backlog缓冲区

     

    replica-priority 100  # 当master不可用,Sentinel会根据slave的优先级选举一个master,最低的优先级的slave,当选master,而配置成0,永远不会被选举

     

    requirepass foobared  # 设置redis 连接密码

     

    rename-command  # 重命名一些高危命令 maxclients 10000 #Redis最大连接客户端

     

    maxmemory  # 最大内存,单位为bytes字节,8G内存的计算方式8(G)1024(MB)1024(KB)*1024(Kbyte),需要注意的是slave的输出缓冲区是不计算在maxmemory内

     

    appendonly no  # 是否开启AOF日志记录,默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了,但是redis如果中途宕机,会导致可能有几分钟的数据丢失(取决于dumpd数据的间隔时间),根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件

     

    appendfilename "appendonly.aof"  # AOF文件名

     

    appendfsync everysec  # aof持久化策略的配置,no表示不执行fsync,由操作系统保证数据同步到磁盘,always表示每次写入都执行fsync,以保证数据同步到磁盘,everysec表示每秒执行一次fsync,可能会导致丢失这1s数据

     

    no-appendfsync-on-rewrite no  # 在aof rewrite期间,是否对aof新记录的append暂缓使用文件同步策略,主要考虑磁盘IO开支和请求阻塞时间。默认为no,表示"不暂缓",新的aof记录仍然会被立即同步,Linux的默认fsync策略是30秒,如果为yes 可能丢失30秒数据,但由于yes性能较好而且会避免出现阻塞因此比较推荐

     

    auto-aof-rewrite-percentage 100  # 当Aof log增长超过指定百分比例时,重写AOF文件, 设置为0表示不自动重写Aof 日志,重写是为了使aof体积保持最小,但是还可以确保保存最完整的数据

     

    auto-aof-rewrite-min-size 64mb  # 触发aof rewrite的最小文件大小

     

    aof-load-truncated yes  # 是否加载由于其他原因导致的末尾异常的AOF文件(主进程被kill/断电等)

     

    aof-use-rdb-preamble no  # redis4.0新增RDB-AOF混合持久化格式,在开启了这个功能之后,AOF重写产生的文件将同时包含RDB格式的内容和AOF格式的内容,其中RDB格式的内容用于记录已有的数据,而AOF格式的内存则用于记录最近发生了变化的数据,这样Redis就可以同时兼有RDB持久化和AOF持久化的优点(既能够快速地生成重写文件,也能够在出现问题时,快速地载入数据)

     

    lua-time-limit 5000  # lua脚本的最大执行时间,单位为毫秒 cluster-enabled yes #是否开启集群模式,默认是单机模式

     

    cluster-config-file nodes-6379.conf  # 由node节点自动生成的集群配置文件 cluster-node-timeout 15000 #集群中node节点连接超时时间

     

    cluster-replica-validity-factor 10  # 在执行故障转移的时候可能有些节点和master断开一段时间数据比较旧,这些节点就不适用于选举为master,超过这个时间的就不会被进行故障转移

     

    cluster-migration-barrier 1  # 集群迁移屏障,一个主节点拥有的至少正常工作的从节点,即如果主节点的slave节点故障后会将多余的从节点分配到当前主节点成为其新的从节点

     

    cluster-require-full-coverage no  # 集群请求槽位全部覆盖,如果一个主库宕机且没有备库就会出现集群槽位不 全,那么yes情况下redis集群槽位验证不全就不再对外提供服务,而no则可以继续使用但是会出现查询数据查不到的情况(因为有数据丢失)

     

     

    Slow log 是 Redis 用来记录查询执行时间的日志系统,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度

     

    slowlog-log-slower-than 10000  # 以微秒为单位的慢日志记录,为负数会禁用慢日志,为0会记录每个命令操作

     

    slowlog-max-len 128  # 记录多少条慢日志保存在队列,超出后会删除最早的,以此滚动删除

    127.0.0.1:6379> slowlog len

    (integer) 14

     

    127.0.0.1:6379> slowlog get 1)

    1) (integer) 14

    2) (integer) 1544690617

    3) (integer) 4

    4) 1) "slowlog"

     

    127.0.0.1:6379> SLOWLOG reset

    OK

     
  • 相关阅读:
    Leetcode 349. Intersection of Two Arrays
    hdu 1016 Prime Ring Problem
    map 树木品种
    油田合并
    函数学习
    Leetcode 103. Binary Tree Zigzag Level Order Traversal
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 101. Symmetric Tree
    poj 2524 Ubiquitous Religions(宗教信仰)
    pat 1009. 说反话 (20)
  • 原文地址:https://www.cnblogs.com/d1anlong/p/11865834.html
Copyright © 2011-2022 走看看