redis集群配置参数及优化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Redis集群配置参数及优化
Redis的主要参数配置在redis.conf文件中。
1.conf 内存值
2.bind ip
默认情况下,如果没有指定“bind”配置指令,Redis将侦听服务器上可用的所有网络接口的连接。
默认情况:bind 127.0.0.1
实际配置:bind 本机ip
3.protected-mode yes
启用默认保护模式。只有当您确定您希望其他主机的客户端连接到Redis 时,您才应该禁用它,即使没有配置身份验证,也没有使用“bind”指令显式列出特定的接口集。
4.tcp-keepalive 300
如果非零,请使用SO_KEEPALIVE向没有通信的客户发送TCP协议。
这很有用,有两个原因:
a)检测死同伴
b)从中间的网络设备的角度进行连接
在Linux上,指定的值(以秒为单位)是用于发送ack的周期。
注意,要关闭连接,需要双倍的时间。这个选项的合理值是300秒,这
是新的Redis默认值,从Redis 3.2.1开始。
5.timeout 0
在客户机空闲N秒后关闭连接(0到禁用)
6.port 6379
在指定端口上接受连接,默认值是6379
7.daemonize yes
redis后台运行
8.pidfile /var/run/redis_6379.pid
如果指定了一个pid文件,Redis会在启动时指定,并在退出时删除它。
当服务器运行非守护进程时,如果配置中没有指定pid文件,则不会创建pid文件。当服务器被守护时,即使没有指定,也会使用pid文件,默认为“/var/run/redis.pid”。
创建一个pid文件是最好的工作:如果Redis不能创建它,那么服务器就会正常启动和运行。
9.loglevel notice
指定服务器冗余级别
包括:
a)debug:大量信息,用于开发/测试
b)verbose:许多很少有用的信息,但不像debug级别那样混乱
c)notice:适度详细,可能在生产中需要
d)warning:只有非常重要/关键的消息被记录
10.logfile ""
指定日志文件名。还可以使用空字符串强制Redis登录标准输出。请注意,如果您使用标准输出来记录日志,但是daemalize,日志将被发送到/dev/null。
11.databases 16
设置数据库的数量。默认数据库是DB 0,您可以使用select 在每个连接上选择一个不同的数据库,其中dbid是一个0和'databases'-1之间的数字。12.always-show-logo yes
默认情况下,Redis只显示了ASCII艺术标志,当开始记录到标准输出时,如果标准输出是TTY。基本上,这意味着通常只有在交互式会话中才会显示徽标。但是,可以强制执行4.0的行为,并且在启动日志中始终显示一个ASCII艺术标识,通过设置下面的选项为yes。
13.dbfilename dump.rdb
要转储数据库的文件名,存储文件。
14.dir ./
工作目录
将在这个目录中写入,使用“dbfilename”配置指令指定上面指定的文件名。
只在此目录中创建附加文件。
注意,您必须在这里指定一个目录,而不是文件名。
15.slaveof
主从复制。使用slaveof来让一个Redis实例复制另一个Redis服务器。
a)Redis复制是异步的;
b)如果复制链接在相对较小的时间内丢失,Redis的奴隶可以与主服务
器进行部分的重新同步。
c)复制是自动的,不需要用户干预。在网络分区后,奴隶会自动尝试
重新连接主人并与他们重新同步。
16.masterauth
如果master是密码保护的(使用下面的“requirepass”配置指令),在启动复
制同步进程之前,可以告诉奴隶进行身份验证,否则主人将拒绝奴隶请求。
17.slave-serve-stale-data yes
当一个奴隶失去与主人的联系,或当复制仍在进行时,奴隶可以采取两种不同的方式:
a)如果slave-serve-stale-data被设置为“yes”(默认),则该slave仍然会回
复客户端请求,可能是由于过时数据,或者如果这是第一次同步,
数据集可能是空的。
b)如果slave-serve-stale-data被设置为“不”,那么slave将会以“与master
同步”的错误来回复所有的命令,but to INFO and SLA VEOF。
18.slave-read-only yes
注:只读奴隶不被设计成在互联网上接触不可信的客户。它只是一个防止滥用实例的保护层。
在默认情况下,仍然只读取奴隶的导出,所有的管理命令,例如CONFIG、DEBUG等等。在一定程度上,您可以通过使用“rename-command”来对所有的管理/危险命令进行隐藏,从而提高读取的安全性。
19.repl-backlog-size 1mb
backlog是一个缓冲区
20.slave-priority 100
它被Redis Sentinel所使用,以便在主人不再正确工作的情况下,选择一个奴隶来提升为主人。
一个低优先级的奴隶被认为是更好的晋升机会,例如,如果有三个优先级为10、100、25个哨兵的奴隶将选择优先级为10的,这是最低的。然而,一个特殊的优先级0标志着奴隶不能执行主人的角色,因此,优先级为0的奴隶将永远不会被Redis Sentinel选中来提升。
默认情况下,优先级是100。
21.maxclients 10000
设置同时连接客户端的最大数量,默认情况下这个限制设置为10000个客户,一旦达到限制,Redis将关闭所有新的连接,发送错误的最大客户数。
22.maxmemory
将内存使用限制设置为指定的字节数。
如果您有附加的奴隶,建议您为maxmemory设置一个较低的限制,以便在系统上有一些空闲RAM用于输出缓冲区(但如果策略是“no驱逐”,则不需要这样做)。
23.maxmemory-policy noeviction
MAXMEMORY策略:当达到MAXMEMORY时,Redis将选择要删除的