redis配置文件详解 redis配置文件redis配置文件详解
程序员文章站
2024-03-14 12:58:52
...
原文:http://www.tbfl.store/redis/redis-config.html
Redis 目录下有一个redis.conf 配置文件,里面会有Redis 的默认配置,通过修改该配置,可以对Redis 达到一定程度的优化;或者根据业务的不同也可以修改该配置文件。
以下为redis 的部分配置文件以属性值:
配置名 | 含义 | 默认值 | 可选值 | 是否支持热生效 |
常规配置 | ||||
daemonize | 是否是守护进程 | no | yes|no | 不支持 |
supervised | 是upstart还是systemd接管redis进程 | no | no|upstart|systemd|auto | 不支持 |
pidfile | 进程文件 | /var/run/redis.pid | 可自定义文件路径 | 不支持 |
loglevel | 日志级别 | notice | debug|verbose|notice|warning | 可以 |
logfile | 日志文件路径 | 空 | 自定义 | 不支持 |
syslog-enabled | redis系统日志 | no | yes|no | 不支持 |
syslog-facility | 系统日志facility | local0 | local0-local7 | 不支持 |
databases | 可用的数据库数 | 16 | 整数 | 不支持 |
文件引用 | ||||
include | 包含外部的配置文件 | 空 | 可自定义文件路径 | 不支持 |
网络 | ||||
bind | 如果不配置,则可接受来自于所有网络的连接 | 127.0.0.1 | ip|多个ip | 不支持 |
protected-mode | 可与bind 组合使用,默认开启,如果redis 没有设置密码,同时bind为空,则在使用客户端连接的时候会进行提示 | yes | yes|no | 不支持 |
unixsocket | unix套接字 | 空(不通过unix 套接字来监听) | 指定套接字文件 | 不支持 |
unixsocketperm | unix套接字权限 | 0 | Linux三位数权限 | 不支持 |
timeout | 客户端N秒没有发送数据,自动断开连接 默认禁用 |
0 | 整数 | 不支持 |
tcp-keepalive | 如果值非0,单位是秒 表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态 避免服务器一直阻塞,官方给出的建议值是300S(3.2.1之后) |
0 | 整数 | 不支持 |
RDB快照 | ||||
save | RDB的保存条件 900秒更新了一个key 300秒更新了10个key 60秒更新了10000个key 都会进行rdb 保存 |
save 900 1 save 300 10 save 60 10000 |
如果没有该配置 则使用自动RDB策略 |
支持 |
stop-writes-on-bgsave-error | bgsave执行错误 是否停止Redis接收写请求 |
yes | yes|no | 支持 |
rdbcompression | RDB文件是否压缩 | yes | yes|no | 支持 |
rdbchecksum | RDB文件是否使用校验和 | yes | yes|no | 支持 |
dbfilename | RDB文件名称 | dump.rdb | 自命名 建议使用dump-{port}.rdb |
支持 |
dir | RDB文件存放目录 | redis安装目录 | 自定义文件路径 | 支持 |
主从复制 | ||||
slaveof | 指定当前从节点复制哪个主节点 | 空 | ip port | 不支持 但可以用slaveof命令设置 |
requirepass | 密码 | 空 | 自定义 | 支持 |
masterauth | 主节点密码 | 空 | 主节点的密码 | 支持 |
slave-serve-stale-data | 当从节点与主节点连接中断时,如果此参数设置为yes 则从节点可以继续处理客户端的请求。 否则除info和slaveof命令之外,拒绝所有的请求并统一回复: "SYNC with master in progress" |
yes | yes|no | 支持 |
slave-read-only | 从节点是否只读 | yes | yes|no | 支持 |
repl-diskless-sync | 是否开启无盘复制 | no | yes|no | 支持 |
repl-diskless-sync-delay | 开启无盘复制后,延迟多少秒后进行RDB的操作,一般用于同时加入多个从节点时,保证多个从节点共享RDB | 5 | 整数 | 支持 |
repl-ping-slave-period | 主节点定期向从节点发送ping命令,用来判断从节点是否存活(单位:秒) | 10 | 整数 | 支持 |
repl-timeout | 主节点复制超时时间,秒 | 60 | 整数 | 支持 |
repl-disable-tcp-nodelay | 是否开启主从复制socket的NO_DELAY选项: yes:Redis会合并小的TCP包来节省带宽,但是这要增加同步延迟,造成主从 数据不一致; no:主节点会立即同步数据,没有延迟。 |
no | yes|no | 支持 |
repl-backlog-size | 复制积压缓冲区大小 | 1M | 整数 | 支持 |
repl-backlog-ttl | 主节点在没有从节点的情况下多久后释放复制积压缓存区空间 | 3600 | 整数 | 支持 |
slave-priority | 从节点的优先级 | 100 | 0-100 | 支持 |
min-slaves-to-write | 当主节点发现从节点数量小于min-slaves-to-write 且延迟小于等于min-slaves-max-lag时,master停止写操作。 | 0 | 整数 | 支持 |
min-slaves-max-lag | 10 | 整数 | 支持 | |
slave-announce-ip | Redis Sentinel可以使用该信息来发现slave实例。 | 空 | ip | 支持 |
slave-announce-port | 空 | port | 支持 | |
安全 | ||||
requirepass | 密码 | 空 | 自定义 | 支持 |
内存策略 | ||||
maxclients | 最大客户端连接数 | 10000 | 整数 | 支持 |
maxmemory | 节点的最大内存 | 无限制 | 不能大于物理内存 | 支持 |
maxmemory-policy | redis 内存淘汰策略 | noeviction | volatile-lru:在设置过期时间的key中,剔除最少使用的key allkeys-lru:在所有的key中剔除最少使用的Key volatile-random:在过期时间key中,随机剔除 allkeys-random:在所有的key中,随机剔除 volatile-ttl:在设置过期的key中,优先剔除即将过期的key noeviction:不做任何操作,直接返回oom异常 |
支持 |
maxmemory-samples | 上面LRU和最小TTL策略并非严谨的策略,而是大约估算的方式,因此可以选择取样值以便检查 | 5 | 整数 | 支持 |
AOF相关配置 | ||||
appendonly | 是否开启AOF持久化模式 | no | yes|no | 支持 |
appendfilename | aof文件名称 | appendonly.aof | 建议:appendonly-{port}.aof | 不支持 |
appendfsync | aof同步磁盘频率 | everysec | everysec|always|no | 支持 |
no-appendfsync-on-rewrite | 设置为yes,表示rewrite期间对新的写操作不fsync,暂时放入缓冲区,等rewrite完成之后再写入 | no | yes|no | 支持 |
auto-aof-rewrite-percentage | 触发rewrite的AOF文件增长比例条件 | 100 | 整数 | 支持 |
auto-aof-rewrite-min-size | 触发rewrite的AOF文件最小阀值(单位:兆) | 64 | 整数+m | 支持 |
aof-load-truncated | 加载AOF文件时,是否忽略AOF文件不完整的情况 | yes | yes|no | 支持 |
Lua脚本 | ||||
lua-time-limit | Lua脚本超时时间单位:毫秒 | 5000 | 整数,但是此超时不会真正停止脚本运行 | 支持 |
Redis集群 | ||||
cluster-enabled | 是否开启redis 集群 | yes | yes|no | 不支持 |
cluster-config-file | 集群配置文件 | nodes-6379.conf | nodes-{port}.conf | 不支持 |
cluster-node-timeout | 集群节点超时时间,单位毫秒 | 15000 | 整数 | 支持 |
cluster-slave-validity-factor | 从节点有效性判断因子,当从节点与主节点最后通信时间超过(cluster-node-timeout * slave-validity-factor + repl-ping-slave-period)时,对应从 节点不具备故障转移资格,防止断线时间过长的从节点进行故障转称。设置为0表示从节点永不过期。 | 10 | 整数 | 支持 |
cluster-migration-barrier | 主从节点切换需要的从节点数最小个数。 | 1 | 整数 | 支持 |
cluster-require-full-coverage | 集群是否需要所有的slot都分配给在线节点。才能正常访问。 | yes | yes|no | 不支持 |
慢查询 | ||||
slowlog-log-slower-than | 慢查询被记录的阀值。单位:微秒 | 10000 | 整数 | 支持 |
slowlog-max-len | 慢查询记录的条数。 | 128 | 整数 | 支持 |
latency-monitor-threshold | Redis服务内存延迟监控,0代表关闭 | 0 | 整数 | 支持 |
高级选项 | ||||
hash-max-ziplist-entries | hash数据结构优化参数 | 512 | 整数 | 支持 |
hash-max-ziplist-value | hash数据结构优化参数 | 64 | 整数 | 支持 |
list-max-ziplist-size | list数据结构优化参数 | -2 | -5|-4|-3|-2|-1 | 支持 |
list-compress-depth | list数据结构优化参数,0代表不可用 | 0 | 0|1|2|3 | 支持 |
set-max-intset-entries | set数据结构优化参数 | 512 | 整数 | 支持 |
zset-max-ziplist-entries | zset数据结构优化参数 | 128 | 整数 | 支持 |
zset-max-ziplist-value | zset数据结构优化参数 | 64 | 整数 | 支持 |
hll-sparse-max-bytes | hyperLogLog数据结构优化参数 | 3000 | 整数 | 支持 |
client-output-buffer-limit | 客户端输出缓冲区限制 | normal 0 0 slave 256mb 64mb 60 pubsub 32mb 8mb 60 |
整数 | 支持 |