redis配置文件:redis.conf

配置项及说明

1、Redis登录连接

  • bind

绑定的主机地址,只有bind指定的IP,才能用redis-cli登录该redis服务器并进行操作。

如果没有绑定本机IP,即使本机使用0.0.0.0也是不能访问的。

如果要想允许本机访问,那么可以写成:bind 本机IP

如果写为①bind 0.0.0.0;②bind *;③把bind注释掉,那么就相当于对所有IP开放了登录权限。

如果要bind多个IP,应该写为:

bind IP1 IP2

//错误写法,此时最下边bind IP的会覆盖其他的IP
bind IP1
bind IP2  
  • protected-mode

是否允许远程访问,yes-不允许,no-允许

bind和protected-mode共同控制了是否可以远程访问:

  • bind控制了允许使用哪个IP登录本主机(redis-cli -h选项);
  • protected-mode控制了是否可以远程访问,只有当为no时才能从另一台主机上访问本机redis
  • port

监听的端口,默认6379。

在一些哨兵模式或者集群模式下可以变化。

port项也指定了通过redis-cli登录时,-p项的端口。

  • requirepass

设置Redis连接/登录密码。默认关闭。

如果配置了该项,那么在通过redis-cli -h登录时,还要加入-a或AUTH选项来指定密码。

此外,如果该节点是配置了主从复制m节点,那么所有的s节点还要配置masterauth项

  • timeout

多久(秒)未操作后关闭连接,如果设为0则表示关闭该功能。

  • daemonize

是否设置为守护进程。yes-是,no-否

守护进程:运行在后台的特殊进程,独立于控制终端,不用用户输入就能持续运行。

  • pidfile

daemonize=yes时,redis服务将作为守护进程在后台运行,此时可以在pidfile找到其pid号

  • loglevel

日志级别。默认为 notice

  • databases

管理的数据库数量。默认0。

可以通过客户端工具看得到。

  • maxclients

用途

  • 同一时间最大客户端连接数,默认为0,无限制。

说明

  • Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
  • 可以在info clients中查看当前Redis的连接数
  • 可以通过config set maxclients来对最大连接数进行动态设置。

2、内存

  • maxmemory

redis最大内存限制(byte)。

Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。

3、持久化

  • rdbcompression

全局复制时,是否对数据进行压缩。默认yes。

Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。

  • dbfilename

RDB模式下存放数据的rdb文件,默认dump.rdb

  • dir

redis工作目录,存放rbg文件、日志文件

  • appendonly

是否开启AOF

  • appendfilename

AOF文件的存放位置

  • appendfsync

AOF缓冲区同步文件策略,不同取值代表不同的策略:

always:命令写入aof_buf后,调用系统fsync操作同步到AOF文件fsync完成后线程返回;

everysec:命令写入aof_buf后,调用系统write操作,witer完成后线程返回fsync同步文件操作由专门线程每秒调用一次

no:命令写入aof_buf后,调用系统write操作,不对AOF文件做fsync同步同步硬盘操作由操作系统负责,通常同步周期最长30s

  • auto-aof-rewrite-min-size

AOF重写时文件最小体积,默认64MB

  • auto-aof-rewrite-percentage

当前AOF空间(aof_current_size)与上一次重写后的AOF文件空间(aof_base_size)的比值。

AOF自动触发时机=aof_current_size>auto-aof-rewrite-minsize&&(aof_current_size-aof_base_size)/aof_base_size>=auto-aof-rewritepercentage

其中aof_current_size和aof_base_size可以在info Persistence统计信息中查看。

  • aof-rewrite-incremental-fsync

用途:AOF时,单次批量写入硬盘的数据量

  • no-appendfsync-on-rewrite

用途:AOF重写时,是否做fsync操作

默认:no

说明:当为yes时,极端情况下可能丢失整个AOF重写期间的数据

4、客户端

  • client-output-buffer-limit

用途:输出缓冲区的容量。

每个C端都有一个输出缓冲区,其作用是保存命令的执行结果并返回给C端

用法:client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>

各项

说明

class

客户端类型:

normal:普通C端

slave:slave C端,用于复制

pubsub:发布订阅客户端

hard limit 如果buffer大于hard limit,C端会立刻关闭

soft limit

soft seconds

如果C端使用的obuf超过了soft limit并且持续了soft second秒,C端会立刻关闭

默认:client-output-buffer-limit slave 256MB 64MB 60

含义是,60s内buffer的使用量超过了64MB或者直接超过了256MB,m将取消主从复制,造成全量同步/主从复制失败

5、主从复制

  • replicaof

用法:replicaof {masterHost} {masterPort}

用途:指定该Redis所属的master,此后该节点成为slave

  •  requirepass

用途:

  • 设置节点密码,设置完毕后该节点的登录(所有该节点bind的IP:PORT)需要用-a或auth密码登录;
  • 此外,m如果设置了requirepass,s还需要配置masterauth,二者相同。
  • masterauth

用途:m如果设置了requirepass,s还需要配置masterauth,二者相同。

  • replica-read-only

用途:设置s是否为只读

该项尽量不要修改,因为主从复制是从m到s,对s的任何修改是无法被m感知到的,从而造成主从不一致的问题。

  • repl-disable-tcp-nodelay

用途:用于控制是否关闭TCP_NODELAY

选项

  • 关闭(默认),m产生的命令无论大小都会及时发给s,这样主从延迟会变小,但是增加了网络带宽消耗。适用于主从网络环境良好的场景,如同机架、同机房部署低延迟
  • 开启,m会合并较小的TCP数据包从而节省带宽。默认的发送时间间隔取决于Linux内核,一般默认40ms。这种配置节省了带宽,但是增大了主从间的延迟。适用于网络环境复制带宽紧张的场景,如跨机房部署。高容灾性
  • repl-timeout 

用途:主从复制的超时时间

说明:

当m向s复制的RDB太大,复制的时间超过了该项所设置的值,此时s会放弃接收并清理已接收的临时文件,主从复制失败。

默认值:60;

之所以设置为60,是指在千兆网卡下,网卡带宽理论峰值为100MB/s,此时传完6GB的RDB文件至少需要60s。这种情况下传输>6GB的RDB文件就很容易出现同步超时。

  • repl-diskless-sync

用途:无盘复制

说明:

为了降低m的磁盘开销,Redis支持无盘复制——m上生成的RDB不保存在本地,而是直接通过网络发送到s。

  • replica-serve-stale-data

用途:是否关闭s节点的读功能

说明

默认开启,此时s会响应所有命令。对于无法容忍不一致的场景可以设置为no,此时s除了inforeplicaof命令之外的所有命令都只返回"SYNC with master in progress"(也就是说此时没法读了,这个s只是作为m的备份存在)。

  •  repl-ping-replica-period

用途:主从之间ping命令发送的时间间隔(s)

说明:

ping命令用于m和s互相检测对方的存活性和连通情况。

  • min-replicas-to-write与min-replicas-max-lag

用途:指定开启主从复制情况下,最小s的数量、最大的延迟性

说明:

当s数量少于min-replicas-to-write或者延迟超过min-replicas-max-log时,m将不会向s写入

posted @ 2023-08-31 16:07  ShineLe  阅读(281)  评论(0编辑  收藏  举报