redis-6.2.11 conf配置文件

Redis 6.2.11 配置文件中涉及了多个方面,包括绑定IP、保护模式、端口、超时、心跳检测、守护进程设置、日志级别和路径、数据库数量、持久化策略、复制同步策略、AOF持久化、慢日志、事件通知和数据结构优化等。保护模式默认仅接受本地连接,可通过设置`protected-mode no`开放。复制策略可以选择磁盘备份或无磁盘备份。AOF持久化配置可通过`appendonly yes`开启,并配置同步策略。慢日志可通过`slowlog-log-slower-than`设置记录阈值。

redis-6.2.11 conf配置文件

绑定访问ip

bind 127.0.0.1

保护模式

开启了protected-mode(保护模式),那么在没有设定bind ip且没有设密码的情况下,也只接受本机的响应。

如果学习时想要方便,让哪里都可以访问,可以注释掉bind配置,并且把保护模式改成no

protected-mode no

访问端口

port 6379

tcp半连接队列长度配置

tcp-backlog 511

超时时长

timeout 0

tcp 心跳检测间隔时长 单位秒

tcp-keepalive 60

是否配置为守护进程

daemonize no

默认为no 无监督交互

supervised no

pid文件位置配置

pidfile /var/run/redis_6379.pid

日志级别

loglevel notice

日志文件输出路径

logfile /opt/redis-6.2.11/log

数据库数量配置

databases 16

是否总是显示logo

always-show-logo yes

Redis将在给定的秒数和给定的对DB的写入操作数都发生时保存DB

3600秒后,如果至少更换了一个key

save 3600 1

300秒后,如果至少更换了10个key

save 300 10

30秒后 ,如果至少更换了10000个key

save 60 10000

默认情况下,如果启用RDB快照,Redis将停止接受写入(至少一个保存点)和最新的后台保存失败。

#这会让用户意识到(以一种强硬的方式)数据没有正确地保存在磁盘上,否则很可能没有人注意到,会发生一些灾难。

如果后台保存过程再次开始工作,Redis将自动允许再次写入。

但是,如果您设置了正确的Redis服务器监控和持久性,您可能希望禁用此功能,以便Redis即使磁盘、权限等出现问题,也可以继续照常工作。

stop-writes-on-bgsave-error yes

转储.rdb数据库时使用LZF压缩字符串对象?

默认情况下,压缩是启用的,因为它几乎总是成功的。如果您想在保存子项中保存一些CPU,请将其设置为“否”,

但如果您有可压缩的值或键,则数据集可能会更大。

rdbcompression yes

由于RDB的版本5,CRC64校验和放在文件末尾。

#这使得格式更耐损坏,但在保存和加载RDB文件时,性能会受到影响(约10%),因此您可以禁用它以获得最大性能。
#在禁用校验和的情况下创建的RDB文件的校验和为零,这将告诉加载代码跳过检查。yes表示不禁用
rdbchecksum yes

转储的DB文件名

dbfilename dump.rdb

工作目录 DB将写入此目录

dir ./

#当复制副本失去与主机的连接时,或者当复制
#复制副本仍在进行中,复制副本可以以两种不同的方式运行:

1) 如果复制副本服务过时数据设置为“yes”(默认值),则复制副本仍将回复客户端请求,可能会使用过期数据,或者如果这是第一次同步,则数据集可能为空。

2)如果复制副本服务过时数据设置为“no”,则复制副本将对所有命令回复错误“SYNC with master in progress”,以下命令除外:

信息、复制、AUTH、PING、关机、复制、角色、配置、订阅、未订阅、PSUBSCRIBE、PUNSUBSCRIBE、PUNSUBSCRIBE、发布、PUBSUB、命令、POST、主机和最新。

replica-serve-stale-data yes

您可以将复制副本实例配置为接受或不接受写入。写入反对副本实例可能有助于存储一些临时数据(因为在与主副本重新同步后,写入副本上的数据将很容易被删除),

但如果客户端由于配置错误而写入副本,也可能会导致问题。

由于Redis 2.6默认情况下副本是只读的。

注意:只读副本的设计不会暴露给internet上不受信任的客户端。它只是一个防止误用实例的保护层。默认情况下,只读副本仍会导出所有管理命令,如CONFIG、DEBUG等。

在一定程度上,您可以使用“重命名命令”来隐藏所有管理/危险命令,从而提高只读副本的安全性。

replica-read-only yes

复制SYNC策略:磁盘或套接字。

新复制副本和重新连接无法继续

复制过程只是接收差异,需要执行所谓的“完全同步”。RDB文件从主机传输到副本。

传输可以通过两种不同的方式进行:

1) 磁盘备份:Redis主机创建一个新进程,将RDB文件写入磁盘。稍后,文件由父进程以增量方式传输到副本。

2) 无磁盘:Redis主机创建了一个新的进程,它可以直接将RDB文件写入副本套接字,而不需要接触磁盘。

通过磁盘备份复制,在生成RDB文件时,只要生成RDB的当前子级完成其工作,就可以将更多副本排队并与RDB文件一起使用。使用无盘复制,一旦传输开始,到达的新副本将被排队,并且新的传输将在当前传输终止时开始。

当使用无盘复制时,主机在开始传输之前等待一段可配置的时间(以秒为单位),希望多个副本能够到达并并行传输。

使用慢速磁盘和快速(大带宽)网络,无盘复制工作得更好 yes表示使用自盘备份

repl-diskless-sync no

启用无盘复制时,可以配置延迟服务器等待以生成通过套接字传输RDB的子级复制副本。

这一点很重要,因为一旦转移开始,就无法服务

新副本到达,将排队等待下一次RDB传输,因此服务器等待一段时间,以便让更多副本到达。

延迟以秒为单位指定,默认情况下为5秒。禁用它完全设置为0秒,传输将尽快开始。

repl-diskless-sync-delay 5

在SYNC之后禁用复制套接字上的TCP_NODELAY?

如果选择“是”,Redis将使用较少数量的TCP数据包将数据发送到副本的带宽更少。但这会增加延迟数据将显示在副本侧,最长为40毫秒

使用默认配置的Linux内核。

如果选择“否”,数据出现在副本侧的延迟将减少,但复制将使用更多的带宽。

默认情况下,我们优化低延迟,但在非常高的流量条件下或者当主副本和副本相隔很远时,将此设置为“是”可能是一个好主意。默认为no,降低延迟

repl-disable-tcp-nodelay no

设置副本优先级

副本优先级是Redis在INFO输出中发布的整数。Redis Sentinel使用它来选择要升级的副本如果主机不再正常工作,则将其转换为主机。

优先级低的副本被认为更适合升级,因此例如,如果有三个优先级为10、100、25 Sentinel的副本将选择优先级最低的10。

但是,特殊优先级0将复制副本标记为无法执行 因此,Redis Sentinel永远不会选择优先级为0的副本进行升级。

replica-priority 100

Redis有两个基元来删除键。一种叫做DEL,是对对象的阻止删除。这意味着服务器停止处理新命令,以便以同步方式回收与对象相关联的所有内存。如果删除的键与一个小对象关联,则执行DEL命令所需的时间非常短,与Redis中的大多数其他O(1)或O(log_N)命令相当。

但是,如果密钥与包含数百万个元素的聚合值相关联,则服务器可以阻塞很长时间(甚至几秒)以完成操作。

出于上述原因,Redis还提供了非阻塞删除原语

例如UNLINK(非阻塞DEL)和FLUSHOLL和FLUSHDB命令的ASYNC选项。这些命令在恒定时间内执行。另一个线程将以尽可能快的速度递增释放背景中的对象。

FLUSHOLL和FLUSHDB的DEL、UNLINK和ASYNC选项由用户控制。这取决于应用程序的设计,以了解何时使用其中之一是一个好主意。

然而,作为其他操作的副作用,Redis服务器有时必须删除密钥或刷新整个数据库。具体来说,在以下情况下,Redis会独立于用户调用删除对象:

1) 在驱逐时,由于maxmemory和maxmemory策略配置,为了在不超过指定内存限制的情况下为新数据腾出空间。

2) 由于过期:必须从内存中删除具有相关生存时间的密钥(请参阅expire命令)。

3) 因为在可能已经存在的键上存储数据的命令的副作用。例如,RENAME命令可以在替换为另一个密钥内容时删除旧密钥内容。类似地,SUNIONSTORE

或SORT with STORE选项可以删除现有密钥。SET命令

它本身会删除指定键的任何旧内容,以便用指定的字符串替换它。

4) 在复制期间,当复制副本与执行完全重新同步时

整个数据库的内容被删除,以便加载刚刚传输的RDB文件。

在上述所有情况下,默认情况是以阻塞方式删除对象,就像调用了DEL一样。但是,您可以专门配置每种情况,以便以非阻塞方式释放内存

lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

是否开启AOF持久化

appendonly no

AOF文件名称

appendfilename “appendonly.aof”

持久化同步策略

appendfsync everysec

有数据保存到redis时,是否暂时停止持久化,默认为no

no-appendfsync-on-rewrite no

自动重写AOF文件的条件

AOF文件大小增长到了指定的百分比(相对于上次AOF文件大小的增长量)或者最小体积时。

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

AOF文件末尾截断时的处理策略

默认是true,发生文件截断时,依旧加载文件。

aof-load-truncated yes

是否开启RDB与AOF混合持久化

aof-use-rdb-preamble yes

配置LUA脚本最大执行时长 当脚本运行时间超过限制后,redis将开始接受其他命令但是不会执行,而是会返回BUSY错误。单位是毫秒

lua-time-limit 5000

慢日志

慢日志记录阈值 命令执行时间超过这个值就会被记录到慢日志中,默认值是10000微秒。

slowlog-log-slower-than 10000

慢日志文件大小 慢日志文件超过这个长度后最旧的记录会被删除,默认值是128条。

slowlog-max-len 128

延迟监控 单位是毫秒,默认情况下,延迟监控是禁用的。即0

latency-monitor-threshold 0

事件通知 默认情况下所有事件通知都是关闭的,因为大多数用户不需要这些特性。

notify-keyspace-events “”

高级设置

设置Hash底层数据结构由ziplist转为hashtable的阈值

hash-max-ziplist-entries 512
hash-max-ziplist-value 64

设置List底层数据结构quicklist中单个ziplist的大小

list-max-ziplist-size -2

设置如何继续压缩List中ziplist

list-compress-depth 0

设置set底层intset升级为hashtable的阈值 单位是字节

set-max-intset-entries 512

ZSet底层数据结构由ziplist转为skiplist的阈值

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

设置HyperLogLog底层稀疏矩阵转为稠密矩阵的阈值

hll-sparse-max-bytes 3000

自定义Stream宏节点大小 stream-node-max-bytes选项修改Stream中每个宏节点能够占用的最大内存。

stream-node-max-entries参数指定每个宏节点中可存储条目的最大数量。

stream-node-max-bytes 4096
stream-node-max-entries 100

是否开启Rehash

activerehashing yes

客户端输出缓存控制

client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

执行任务频率

hz 10

动态任务执行频率

dynamic-hz yes

AOF重写时执行fsync策略

aof-rewrite-incremental-fsync yes

保存RDB文件时执行fsync策略

rdb-save-incremental-fsync yes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值