zoukankan      html  css  js  c++  java
  • [Linux][Redis][02]Config

    # redis 配置文件示例

     

    # 当你需要为某个配置项指定内存大小的时候,必须要带上单位,

    # 通常的格式就是 1k 5gb 4m 等:

    #

    # 1k  => 1000 bytes

    # 1kb => 1024 bytes

    # 1m  => 1000000 bytes

    # 1mb => 1024*1024 bytes

    # 1g  => 1000000000 bytes

    # 1gb => 1024*1024*1024 bytes

    #

    # 单位是不区分大小写的,你写 1K 5GB 4M 也行

     

    # 假如说你有一个可用于所有的 redis server 的标准配置模板,

    # 但针对某些 server 又需要一些个性化的设置,

    # 你可以使用 include 来包含一些其他的配置文件,这对你来说是非常有用的。

    #

    # 但是要注意哦,include 是不能被 config rewrite 命令改写的

    # 由于 redis 总是以最后的加工线作为一个配置指令值,所以你最好是把 include 放在这个文件的最前面,

    # 以避免在运行时覆盖配置的改变,相反,你就把它放在后面

    #

    # include /path/to/local.conf

    # include /path/to/other.conf

     

    # 默认情况下,redis 在 server 上所有有效的网络接口上监听客户端连接。

    # 你如果只想让它在一个网络接口上监听,那你就绑定一个IP或者多个IP。

    #

    # 示例,多个IP用空格隔开:

    #

    # bind 192.168.1.100 10.0.0.1

    # bind 127.0.0.1

    bind x.x.x.x  

     

    # 保护模式是安全保护的一层,为了避免Redis实例在Internet上暴露并且被恶意使用

    # 保护模式在一下情况下开启

    #

    # 1)服务器没有缺血的使用bind指令制定一个确切的IP地址

    # 2)没有密码配置

    #

    # 服务器只能接受客户端使用IPV4,IPV6,loopback,Unix套接字的地址

    #

    # 默认情况下,保护模式是开启的,如果你能确定客户端连接在没有密码配置的情况下连接,

    # 或者使用bind指令明确的制定了借口的地址,就可以关闭此选项

    #

    protected-mode no

     

    # 监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。

    port 6379

     

    # TCP 监听的最大容纳数量

    #

    # 在高并发的环境下,你需要把这个值调高以避免客户端连接缓慢的问题。

    # Linux 内核会一声不响的把这个值缩小成 /proc/sys/net/core/somaxconn 对应的值,

    # 所以你要修改这两个值才能达到你的预期 

    tcp-backlog 4096

     

    # Unix 套接字

    # 指定确切的路径,监听进入的连接,这个选项没有默认值,所以,Redis在配置的情况下,是不会监听的

     

    # 指定在一个 client 空闲多少秒之后关闭连接(0 就是不管它)

    timeout 300

     

    # tcp 心跳包。

    #

    # 如果设置为非零,则在与客户端缺乏通讯的时候使用 SO_KEEPALIVE 发送 tcp acks 给客户端。

    # 这个之所有有用,主要由两个原因:

    #

    # 1) 防止死的 peers

    # 2) Take the connection alive from the point of view of network

    #    equipment in the middle.

    tcp-keepalive 60

     

    # 默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。

    # 当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面。

    daemonize yes

     

    # 可以通过upstart和systemd管理Redis守护进程

    supervised systemd

     

    # 当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/run/redis.pid 文件里面,

    # 但是你可以在这里自己制定它的文件位置。

    pidfile /var/run/redis_6379.pid

     

    # 定义日志级别。

    # 可以是下面的这些值:

    # debug (适用于开发或测试阶段)

    # verbose (many rarely useful info, but not a mess like the debug level)

    # notice (适用于生产环境)

    # warning (仅仅一些重要的消息被记录)

    loglevel notice

     

    logfile "/var/log/redis/redis.log"

     

    # 要想把日志记录到系统日志,就把它改成 yes,

    # 也可以可选择性的更新其他的syslog 参数以达到你的要求

     

    # 设置 syslog 的 identity

     

    # 设置 syslog 的 facility,必须是 USER 或者是 LOCAL0-LOCAL7 之间的值

     

    # 设置数据库的数目。

    # 默认数据库是 DB 0,你可以在每个连接上使用 select <dbid> 命令选择一个不同的数据库,

    # 但是 dbid 必须是一个介于 0 到 databasees - 1 之间的值

    databases 16

     

    # 存 DB 到磁盘:

    #

    #   格式:save <间隔时间(秒)> <写入次数>

    #

    #   根据给定的时间间隔和写入次数将数据保存到磁盘

    #

    #   下面的例子的意思是:

    #   900 秒后如果至少有 1 个 key 的值变化,则保存

    #   300 秒后如果至少有 10 个 key 的值变化,则保存

    #   60 秒后如果至少有 10000 个 key 的值变化,则保存

    #

    #   注意:你可以注释掉所有的 save 行来停用保存功能。

    #   也可以直接一个空字符串来实现停用:

    #   save ""

    save 900 1

    save 300 10

    save 60 10000

     

    # 默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,

    # 这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,

    # 否则就会没人注意到灾难的发生。

    #

    # 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。

    #

    # 然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no

    stop-writes-on-bgsave-error yes

     

    # 是否在 dump .rdb 数据库的时候使用 LZF 压缩字符串

    # 默认都设为 yes

    # 如果你希望保存子进程节省点 cpu ,你就设置它为 no ,

    # 不过这个数据集可能就会比较大

    rdbcompression yes

     

    # 自从版本5 的RDB crc64校验被放置在文件的末尾 

    #这使得格式更复杂,但性能有所提高 

    #命中率( 10%左右)时,保存和加载数据库文件,所以您可以禁用它获得最大性能 

    #当校验关闭时 RDB便建立一个0 字节的文件,告诉加载代码跳过检查

    rdbchecksum yes

     

    # 设置 dump 的文件位置

    dbfilename dump.rdb

     

    # 工作目录

    # 例如上面的 dbfilename 只指定了文件名,

    # 但是它会写入到这个目录下。这个配置项一定是个目录,而不能是文件名

     

    # 主从复制。使用 slaveof 来让一个 redis 实例成为另一个reids 实例的副本。

    # 注意这个只需要在 slave 上配置。

     

    # 如果 master 需要密码认证,就在这里设置

     

    # 当一个 slave 与 master 失去联系,或者复制正在进行的时候,

    # slave 可能会有两种表现:

    #

    # 1) 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,

    #    或者数据可能是空的在第一次同步的时候

    #

    # 2) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时,

    #    slave 都将返回一个 "SYNC with master in progress" 的错误,

    slave-serve-stale-data yes

     

    # 你可以配置一个 slave 实体是否接受写入操作。

    # 通过写入操作来存储一些短暂的数据对于一个 slave 实例来说可能是有用的,

    # 因为相对从 master 重新同步数而言,据数据写入到 slave 会更容易被删除。

    # 但是如果客户端因为一个错误的配置写入,也可能会导致一些问题。

    #

    # 从 redis 2.6 版起,默认 slaves 都是只读的。

    #

    # 注意:只读的 slaves 没有被设计成在 internet 上暴露给不受信任的客户端。

    # 它仅仅是一个针对误用实例的一个保护层。

    slave-read-only yes

     

    repl-diskless-sync no

    repl-diskless-sync-delay 5

     

    # Slaves 在一个预定义的时间间隔内发送 ping 命令到 server 。

    # 你可以改变这个时间间隔。默认为 60 秒。

     

    repl-disable-tcp-nodelay no

     

    # 设置主从复制容量大小。这个 backlog 是一个用来在 slaves 被断开连接时

    # 存放 slave 数据的 buffer,所以当一个 slave 想要重新连接,通常不希望全部重新同步,

    # 只是部分同步就够了,仅仅传递 slave 在断开连接时丢失的这部分数据。

    # 这个值越大,salve 可以断开连接的时间就越长

     

    # 在某些时候,master 不再连接 slaves,backlog 将被释放。

    # 如果设置为 0 ,意味着绝不释放 backlog 。

     

    # 当 master 不能正常工作的时候,Redis Sentinel 会从 slaves 中选出一个新的 master,

    # 这个值越小,就越会被优先选中,但是如果是 0 , 那是意味着这个 slave 不可能被选中。

    #

    # 默认优先级为 100。

    slave-priority 100

     

    # 设置认证密码

     

    # 一旦达到最大限制,redis 将关闭所有的新连接

    # 并发送一个‘max number of clients reached’的错误

     

    # 如果你设置了这个值,当缓存的数据容量达到这个值, redis 将根据你选择的

    # eviction 策略来移除一些 keys。

    #

    # 如果 redis 不能根据策略移除 keys ,或者是策略被设置为 ‘noeviction’,

    # redis 将开始响应错误给命令,如 set,lpush 等等,

    # 并继续响应只读的命令,如 get

    # 最大使用内存

     

    # 最大内存策略,你有 5 个选择

     

    appendonly no

    appendfilename "appendonly.aof"

    appendfsync everysec

    no-appendfsync-on-rewrite no

    auto-aof-rewrite-percentage 100

    auto-aof-rewrite-min-size 64mb

    aof-load-truncated yes

    lua-time-limit 5000

    slowlog-log-slower-than 10000

    slowlog-max-len 128

    latency-monitor-threshold 0

    notify-keyspace-events ""

    hash-max-ziplist-entries 512

    hash-max-ziplist-value 64

    list-max-ziplist-size 2

    list-compress-depth 0

    set-max-intset-entries 512

    zset-max-ziplist-entries 128

    zset-max-ziplist-value 64

    hll-sparse-max-bytes 3000

    activerehashing yes

    client-output-buffer-limit normal 0 0 0

    client-output-buffer-limit slave 256mb 64mb 60

    client-output-buffer-limit pubsub 32mb 8mb 60

    hz 10

    aof-rewrite-incremental-fsync yes

  • 相关阅读:
    SSH免密登录
    要不要学AI
    俞军产品方法论-笔记
    数据产品经理:实战进阶-笔记
    java代码中引用了scala类,Maven打包编译时爆出找不到scala类的异常
    Flink unable to generate a JAAS configuration file
    开始学习首席AI架构师
    flink checkpoinnt失败
    程序员的三种发展方向
    每日站会
  • 原文地址:https://www.cnblogs.com/wuzhenzhou/p/6909785.html
Copyright © 2011-2022 走看看