zoukankan      html  css  js  c++  java
  • [04] Redis 配置文件

    units

    计量单位说明:只支持 bytes,不支持 bit;对大小写不敏感。

    include

    指定包含其他的配置文件,可以在同一主机上多个 Redis 实例之间使用同一份公共的配置文件,而同时各个实例又拥有自己的特定配置文件。

    genernal

    daemonize

    以守护进程方式启动(是否为后台进程)

    pidfile

    当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件中,可以通过该配置指定存放 pid 文件的位置,每个实例会产生一个不同的 pid 文件。

    port

    指定 Redis 监听端口,默认 6379。

    tcp-backlog

    可以理解是一个请求到达后至到接受进程处理前的队列,511 代表最大请求个数。

    tcp-backlog 其实是一个连接队列:backlog 队列总和 = 未完成三次握手队列 + 已经完成三次握手队列

    在高并发环境下你需要一个高 backlog 值来避免慢客户端连接问题。注意 Linux 内核会将这个值减小到 /proc/sys/net/core/somaxconn 的值,所以需要确认增大 somaxconn 和 tcp_max_syn_backing 两个值来达到想要的效果。

    timeout

    timeout:一个空闲的客户端维持多少秒会关闭,0 为永不关闭。

    bind

    • 默认情况 bind 127.0.0.1 只能接受本机的访问请求
    • 不配置的情况下,无限制接受任何 ip 地址的访问
    • 生产环境肯定要写应用服务器的地址
    • 如果开启了 protected-mode,就算没有设定 bind ip 且没有设密码的情况下,Redis 依旧只允许接受本机的响应,所以两个都要搞

    tcp-keepalive

    对访问客户端的一种心跳检测,每个 n 秒检测一次。如果设置为0,则不会进行 Keepalive 检测。官方推荐设为 60 秒。

    about log

    • log level:指定日志记录级别。4 个级别根据使用阶段来选择,生产环境选择 notice 或者 warning。
    • logfile:日志记录方式,默认为标准输出;如果配置 Redis 为守护进程方式运行,而这里又配置日志记录方式为标准输出,则日志将会发送给 /dev/null
    • syslog-*

    databases

    设置数据库的数量

    snapshotting

    RDB 是整个内存压缩过的 Snapshot,RDB 的数据结构可以配置复合的快照触发条件。

    save

    指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合。

    Redis 默认配置文件中提供了 3 个条件:

    如果想禁用 RDB 持久化策略,只要不设置任何 save 指令,或者给 save 传入一个空字符串参数也行。
    如果在客户端使用 save 指令,会立即备份(就算 Redis 当前并没有满足备份策略)。

    stop-writes-on-bgsave-error

    默认是 yes;如果配置成 no,表示不在乎数据不一致或者有其他的手段发现和控制。

    rdbcompression

    对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,Redis 会采用 LZF 算法进行压缩。如果不想消耗 CPU 来进行压缩的话,可以设置为 no 关闭此功能,但会导致数据文件变得巨大。

    rdbchecksum

    在存储快照后,还可以让 Redis 使用 CRC64 算法来进行数据校验,但是这样做会增大大约 10% 的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。

    dbfilename

    分别代表:指定本地数据存放文件名、指定本地数据库存放目录

    replication

    slaveof

    设置本机为 slave 服务时,设置 master 服务的 IP地址及端口。在 Redis 启动时,它会自动从 master 进行数据同步。

    masterauth

    当 master 服务设置了密码保护时,slave 服务连接 master 的密码。

    slave-read-only

    security

    设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭。

    limit

    maxclient

    设置同一时间最大客户端连接数。当客户端连接数达到限制时,Redis 会关闭新的连接并向客户端返回 max numbeR of clients reached 错误信息。如果设置 maxclients 为 0,则表示不做限制。

    maxmemory

    设置 Redis 可以使用的最大内存限制。

    一旦到达内存使用上限,Redis 将会试图移除内部数据,移除规则可以通过 maxmemory-policy 来指定。如果 Redis 无法根据移除规则来移除内存中的数据或者设置了“不允许移除”,那么 Redis 则会针对那些需要申请内存的指令返回错误信息,比如 SET、LPUSH 等。

    maxmemory-policy

    maxmemory-samples

    设置样本数量,LRU 算法和最小 TTL 算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小。一般设置 3 到 7 的数字,数值越小样本越不准确,但是性能消耗也越小。

    append only mode

    appendonly

    指定是否在每次更新操作后进行日志记录,Redis 在默认情况下是异步的把数据写入磁盘。如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 Redis 本身同步数据文件是按上面 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为 no。

    appendfilename

    appendfsync

    指示更新日志的条件,共有 3 个可选值:

    • always:同步持久化,每次发生数据变更会立即记录到磁盘,性能较差但数据完整性比较好(慢、安全)
    • everysec:出厂默认推荐,异步操作,每秒记录;如果一秒内宕机,有数据丢失(折中,默认值)
    • no:等 OS 进行数据缓存同步到磁盘(快)

    about rewrite

    no-appendfsync-onrewrite

    重写时是否可以运行 appendfsync,用默认 no 即可,保证数据安全性。

    auto-aof-rewrite-*

    Redis 会记录上次重写时的 AOF 大小,默认配置是当 AOF 文件大小是上次 rewrite 后大小的一倍且文件大于 64M 时触发。

    others

  • 相关阅读:
    我的Android app开发生涯
    极客学院
    区分H5和native页面
    H5之测试工具
    放最多水
    数组去重 快慢指针
    搜索插入位置 二分查找
    this指向
    JS 抖动和节流
    图片懒加载和预加载
  • 原文地址:https://www.cnblogs.com/liujiaqi1101/p/13613191.html
Copyright © 2011-2022 走看看