Loading

[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

posted @ 2020-09-04 12:43  tree6x7  阅读(187)  评论(0编辑  收藏  举报