Redis 6.0配置整理
官网文档
下列表格中,加粗项为重点关注像
net work(网络相关)
配置名 | 默认值 | 说明 |
---|---|---|
bind | 127.0.0.1 | 绑定本地网卡IP,详情 |
protected-mode | yes | 安全模式,yes=开启,no=关闭,开启状态下需设置密码访问 |
port | 6379 | 端口号,不要使用默认端口号 |
tcp-backlog | 511 | TCP三次握手完成队列长度,详情 |
unixsocket | 注释 | 支持unix套接字 |
unixsocketperm | 注释 | 支持unix套接字 |
timeout | 0 | client空闲多长时间后关闭(秒级),0=不关闭 |
tcp-keepalive | 300 | 通过发送ACKS监测连接是否存活,秒级 |
TLS/SSL
内网模式的redis集群,一般不需要使用SSL连接
该模块下的所有配置默认注释状态
配置名 | 默认值 | 说明 |
---|---|---|
tls-port | 6379 | 默认ssl连接端口, |
tls-cert-file | redis.crt | X.509证书 |
tls-key-file | redis.key | 证书的密钥 |
tls-dh-params-file | redis.dh | - |
tls-ca-cert-file | ca.crt | CA证书 |
tls-ca-cert-dir | /etc/ssl/certs | CA证书文件目录 |
tls-auth-clients | no | 可选值:no, optional |
tls-replication | yes | 副本是否使用TLS访问Master |
tls-cluster | yes | 集群是否使用TLS模式 |
tls-protocols | TLSv1.2 | TLS协议版本 |
tls-ciphers | DEFAULT:!MEDIUM | 密码的规则,仅适用于TLSv1.2以下 |
tls-ciphersuites | TLS_CHACHA20_POLY1305_SHA256 | 加密组件 |
tls-prefer-server-ciphers | yes | 密码规则以服务器为准 |
tls-session-caching | no | 会话缓存 |
tls-session-cache-size | 5000 | 会话缓存大小 |
tls-session-cache-timeout | 60 | 会话缓存过期时间,秒级 |
GENERAL(普通配置)
配置名 | 默认值 | 说明 |
---|---|---|
daemonize | no | 后台程序运行,需要开启 |
supervised | no | 进程管理模式,可选值:no、upstart、systemd、auto |
pidfile | /var/run/redis_6379.pid | 进程ID文件目录 |
loglevel | notice | 日志级别,可用:debug、verbose、notice、warning |
logfile | “” | 日志文件,默认情况会将日志输出到/dev/null |
syslog-enabled | no | 是否输出到系统日志,no=关闭,yes=开启 |
syslog-ident | redis | 系统日志的标识符 |
syslog-facility | local0 | 指定syslog设备,值可以是USER或LOCAL0-LOCAL7 |
databases | 16 | 数据库的数量详情 |
always-show-logo | yes | 启动时是否显示redis的logo |
SNAPSHOTTING(快照)
快照详解
配置名 | 默认值 | 说明 |
---|---|---|
save | 900 1 | RDB保存快照的规则,写法:save <秒数> <修改数>,默认配置为:900秒内有1个key变更就保存快照。详情 |
stop-writes-on-bgsave-error | yes | 当异步快照保存时出现异常,停止快照写入 |
rdbcompression | yes | 快照压缩,默认开启,使用LZF压缩算法,如果想减轻CPU负担,可以关闭 |
rdbchecksum | yes | 快照检查,会增加CPU10%的消耗 |
dbfilename | dump.rdb | 快照文件名 |
rdb-del-sync-files | no | rdb文件是否删除同步锁 |
dir | ./ | 快照文件目录 |
REPLICATION (副本)
主从模式详解
配置名 | 默认值 | 说明 |
---|---|---|
replicaof <masterip> <masterport> | - | 副本从哪台主机哪个端口复制 |
masterauth <master-password> | - | master的密码,如果在requirepass中配置了密码,则需要在这里配置相应的密码 |
masteruser <username> | - | master 用户名 |
replica-serve-stale-data | yes | 从节点从主节点复制过程中,是否继续响应客户端请求,yes=响应,no=不响应 |
replica-read-only | yes | 从节点是否只读,yes=只读,no=可写 |
repl-diskless-sync | no | 是否允许diskless同步,即只同步到从节点内存中,不写入磁盘,no=不允许,yes=允许 |
repl-diskless-sync-delay | 5 | 无磁盘同步的延迟时间,秒级 |
repl-diskless-load | disabled | 是否启用无磁盘加载 |
repl-ping-replica-period | 10 | 从节点向主节点发送心跳的间隔时间,秒级 |
repl-timeout | 60 | 从节点与主节点通信超时时间,秒级 |
repl-disable-tcp-nodelay | no | 实时数据传输,内网带宽不需要修改,如果是跨机房或跨平台同步,则最好设置为yes,并设置延迟时长,避免复制占满带宽 |
repl-backlog-size | 1mb | 复制时的块大小 |
repl-backlog-ttl | 3600 | 副本过期时间,秒级 |
replica-priority | 100 | 优先级,当主节点长时间未响应,则切换优先级高的从节点 |
min-replicas-to-write | 被注释 | 健康从节点最小数量,小于该数值,master将变为只读 详情 |
min-replicas-max-lag | 被注释 | 最大的延迟时间 |
replica-announce-ip | 被注释 | 以host方式明确该从节点是谁 |
replica-announce-port | 被注释 | 明确该节点的端口号 |
KEYS TRACKING(key跟踪)
配置名 | 默认值 | 说明 |
---|---|---|
tracking-table-max-keys | 被注释 | 客户端缓存值 详情 |
SECURITY (安全)
配置名 | 默认值 | 说明 |
---|---|---|
acllog-max-len | 128 | ACL 日志的最大长度 |
aclfile | 被注释 | - |
requirepass | 被注释 | - |
CLIENTS (客户端)
配置名 | 默认值 | 说明 |
---|---|---|
maxclients | 10000 | 最大连接数,当连接数超出时,会返回异常 |
MEMORY MANAGEMENT(内存管理)
配置名 | 默认值 | 说明 |
---|---|---|
maxmemory | 无 | 最大可用内存,当有副本的时候,需要将副本的值设置的比主节点的低 |
maxmemory-policy | noeviction | 内存超出时,清理key的策略,一般使用LRU策略 |
maxmemory-samples | 5 | 淘汰算法的样本数量,样本越多越准确也越耗CPU,建议值:5 |
replica-ignore-maxmemory | yes | 从节点是否忽略maxmemory设置 |
active-expire-effort | 1 | 清理过期key时的CPU消耗占比,值越大,消耗的CPU越多,详情 |
LAZY FREEING
详情
为避免big key(大数据量的Set集合key)过期删除造成的风险,引入的新特性
配置名 | 默认值 | 说明 |
---|---|---|
lazyfree-lazy-eviction | no | maxmemory超限是否开启bio删除 |
lazyfree-lazy-expire | no | key过期时是否开启bio删除 |
lazyfree-lazy-server-del | no | 服务端执行del是否自动修改为unlink |
replica-lazy-flush | no | - |
lazyfree-lazy-user-del | no | 客户端执行del是否自动修改为unlink |
THREADED I/O
详情
当SSL开启的情况下,该特性不工作
配置名 | 默认值 | 说明 |
---|---|---|
io-threads | 被注释 | 默认是禁用的,线程数量,建议设置为CPU的百分之70 |
io-threads-do-reads | no | 当io thread被开启的时候,默认thread是只做写入,该配置设置为yes则开启thread的读操作 |
KERNEL OOM CONTROL(内核OOM控制)
配置名 | 默认值 | 说明 |
---|---|---|
oom-score-adj | no | 当出现OOM时,开启该参数,则会按照优先级尝试kill进程:从节点子进程 < 从节点主进程 < 主节点子进程 < 主节点主进程 |
oom-score-adj-values | 0 200 800 | 按顺序设置主、从、子进程的kill分值,分值越高越可能被杀死 |
APPEND ONLY MODE(AOF模式)
主从复制AOF模式配置,详情
配置名 | 默认值 | 说明 |
---|---|---|
appendonly | no | 是否开启AOF模式 |
appendfilename | “appendonly.aof” | 追加的文件名 |
appendfsync | everysec | 将数据刷入磁盘的方式,默认每秒刷一次,可选值:no(系统控制刷),always(直接写入磁盘),everysec(每秒刷一次) |
no-appendfsync-on-rewrite | no | 主、子进程竞争fsync,参数为no表示当主进程在写时,子进程阻塞。参数为yes时,子进程只将数据写入缓存,不刷新到磁盘 |
auto-aof-rewrite-percentage | 100 | 触发自动重写的增量百分比 |
auto-aof-rewrite-min-size | 64mb | 当自动重写时,最小写入的文件大小 |
aof-load-truncated | yes | Redis异常退出时,有不完整的aof文件,在重启Redis时,会根据这个配置来决定是否加载不完整的aof文件,yes=加载,no=不加载,并启动失败 |
aof-use-rdb-preamble | yes | 是否开启混合模式的持久化,开启可提高redis启动时数据加载效率 |
REDIS CLUSTER(集群)
配置名 | 默认值 | 说明 |
---|---|---|
cluster-enabled | yes | 是否开启集群模式 |
cluster-config-file | nodes-6379.conf | 重写redis.conf |
cluster-node-timeout | 15000 | 节点心跳超时时间,毫秒级 |
cluster-replica-validity-factor | 10 |
从节点与主节点失联超过 (cluster-node-timeout * cluster-replica-validity-factor) + repl-ping-replica-period 时间后,从节点不会升级为主节点,如果设置为0,则无论主从失联多久,都会升为主节点
|
cluster-migration-barrier | 1 | 当还有主节点下有N个节点没有分配,将触发主节点分配 |
cluster-require-full-coverage | yes | 是否需要所有slot都可用时redis才提供服务,yes=是,no=部分slot可用也继续提供服务 |
cluster-replica-no-failover | yes | 当主节点故障时,yes为不允许从节点升为主节点,no则允许 |
cluster-allow-reads-when-down | no | 节点故障或网络分区期间不需要数据的一致性, 只要节点上拥有指定数据就可以读取(默认是no) |
SLOW LOG(慢查询)
配置名 | 默认值 | 说明 |
---|---|---|
slowlog-log-slower-than | 10000 | 慢查询最小时间限制,命令处理超过该时间,即记录一次慢查询,微秒级 |
slowlog-max-len | 128 | 慢查询记录的最大长度,超过长度会被删除,一般不会出现慢查询,所以长度不需要设置太大 |
LATENCY MONITOR(毛刺记录)
比慢查询更详细的延迟命令的记录
详情
配置名 | 默认值 | 说明 |
---|---|---|
latency-monitor-threshold | 0 | 延时命令监控阈值,毫秒级 |
EVENT NOTIFICATION(事件通知)
特性官网文档
目前不明白的是,一个Key的操作是否会给所有client发送通知?
如果给所有client发送通知,那么在多链接场景,会消耗大量资源,最好不要启用该特性
配置名 | 默认值 | 说明 |
---|---|---|
notify-keyspace-events | “” | 设置要通知的事件,"AKE"表示所有事件都会发送通知 |
ADVANCED CONFIG(高级配置)
配置名 | 默认值 | 说明 |
---|---|---|
hash-max-ziplist-entries | 512 | hash的field数量在512个以内且field的value在64以内将进行数据压缩,节约内存 |
hash-max-ziplist-value | 64 | 同上 |
list-max-ziplist-size | -2 | List最大的数量设置,-2=8KB,-1=4KB,-3=16KB,-4=32KB,-5=64KB |
list-compress-depth | 0 | 压缩的逻辑,0表示不压缩,1=头尾不压缩,中间压缩,2=头尾及相邻1元素不压缩,中间压缩,3=头尾及相邻2个元素不压缩,中间压缩 |
set-max-intset-entries | 512 | 超过阈值的set元素,会转为dict,详情 |
zset-max-ziplist-entries | 128 | 意义同hash |
zset-max-ziplist-value | 64 | 同上 |
hll-sparse-max-bytes | 3000 | HyperLogLog有两种矩阵,稀疏矩阵、密集矩阵,输入超过3000字节的会自动转为密集矩阵,详情 |
stream-node-max-bytes | 4096 | 用于设定 Streams 单个节点的最大大小和最多能保存多个个元素 |
stream-node-max-entries | 100 | 同上 |
activerehashing | yes | 开启时,redis将在每100msCPU使用时间内花1ms进行rehash操作;关闭后可能不会及时的释放空闲内存 |
client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds> |
normal 0 0 0 replica 256mb 64mb 60 pubsub 32mb 8mb 60 |
不同的客户端支持不同的参数配置,一般不做用于普通的客户端(比如hgetall之类的命令),只有在大批量数据拉取时,比如Push时,才会通过该限制来保证redis正常。 |
client-query-buffer-limit | 1gb | 查询限制,只有当有巨大的数据请求时才需要修改该参数 |
proto-max-bulk-len | 512MB | 批量查询桶的大小限制,一般不用修改 |
hz | 10 | 值越高,处理关闭链接、过期key就越快越精准,同时消耗的CPU也会增加,建议范围是1~500,一般不建议超过100 |
dynamic-hz | yes | client大增时,会根据hz整数倍调大hz,用于低延迟处理 |
aof-rewrite-incremental-fsync | yes | 当子进程进行 AOF 的重写时,如果启用了 aof-rewrite-incremental-fsync, 子进程会每生成 32 MB 数据就进行一次 fsync 操作。 通过这种方式将数据分批提交到硬盘可以避免高延迟峰值。 |
rdb-save-incremental-fsync | yes | 当 Redis 保存 RDB 文件时,如果启用了 rdb-save-incremental-fsync 功能, Redis 会每生成 32 MB 数据就执行一次 fsync 操作。 通过这种方式将数据分批提交到硬盘可以避免高延迟峰值。 |
lfu-log-factor | 10 | 调整LFU策略的计数器对数因子 |
lfu-decay-time | 1 | 调整LFU策略的计数器衰退时间 |
Redis 6.0配置整理相关推荐
- redis.conf 7.0 配置和原理全解,生产王者必备
我是 Redis, 当程序员用指令 ./redis-server /path/to/redis.conf 把我启动的时候,第一个参数必须是redis.conf 文件的路径. 这个文件很重要,就好像是你 ...
- SpringBoot2.0配置redis相关
2019独角兽企业重金招聘Python工程师标准>>> SpringBoot2.0中redis的配置 REDIS (RedisProperties) Redis数据库索引(默认为0) ...
- Redis 5.0.3默认配置启动报错解决方法
Redis 5.0.3默认配置启动报错解决方法 参考文章: (1)Redis 5.0.3默认配置启动报错解决方法 (2)https://www.cnblogs.com/miclesvic/p/1031 ...
- 带你100% 地了解 Redis 6.0 的客户端缓存
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 近日 Redis 6.0.0 GA 版本发布,这是 Redis 历 ...
- redis 3.0 cluster 集群 学习之路篇 [3]
周氏一族,整理技术文档,给下一代留点教程...... redis 3.0 cluster 安装篇,请看 http://zhoushouby.blog.51cto.com/9150272/1560400 ...
- Redis 6.0 新特性:多线程连环 13 问!
来源 | 码大叔 责编 | Carol 封图 | CSDN付费下载自视觉中国 支持多线程的Redis6.0版本于2020-05-02终于发布了,为什么Redis忽然要支持多线程?如何开启多线程?开启后 ...
- Redis4.0、5.0、6.0、7.0特性整理(持续更新)
最近研究研究新版本redis的新特性,网上查了查资料,这里记录一下. 0. Redis的版本迭代和里程碑 Redis从发布至今,已经有十余年的时光了,一直遵循着自己的命名规则: 版本号第二位如果是奇数 ...
- Redis 3.0 中文版
https://redis.io/topics/introduction 此文由powersoft · 更新于 2018-09-30 10:00:44 感觉powersoft的付出和分享,给点个赞先你 ...
- redis cluster 安装配置
一.redis集群安装配置 1.下载redis源码包并下载 wget http://download.redis.io/releases/redis-3.0.7.tar.gz $ tar xzf re ...
最新文章
- 白化(whitening)是什么?白化(whitening)与PCA(principle component analysis)的区别是什么?
- 转:软件设计漫谈之三:30分钟掌握面向对象类的设计原则
- xmlWriter 以UTF-8格式写xml问题
- java创建链表成绩管理系统_成绩管理系统 链表版
- php path separator,php 非常有用的高级函数PATH_SEPARATOR常量和set_include_path
- JEECG整合JXLS步骤与开发
- Oracle truncate和delete的区别
- fiddler 工具作用和使用场景
- python解包裹_python-之基本语法
- 无法定位软件包dbus-glib-1
- 计算机组成原理答案 耿,计算机组成理习题课2.ppt
- micropython(3):使用thonny ide 开发,并控制 LED 设备
- 5类6类7类网线对比_5类 6类 7类网线有没有什么区别
- 使用MD5进行加密解密【代码实现】
- 深度关注 | 元宇宙如何改写人类社会生活
- FPGA开发基础——基于multisim以及Quartus实现的交通灯电路
- 开发餐厅里扫餐桌码进行点餐下单
- 轨迹发生器 matlab,GPS和INS组合导航程序,其中包括轨迹发生器、KALMAN滤波、模型建立、伪距伪距率组合方式进行仿真...
- 计算机辅助导航技术口腔外科,计算机辅助导航技术在口腔种植手术中的应用.pdf...
- 【双色球】随身彩软件开发中,目前1.0已经可以下载试用