6.集群配置
# 集群开关,默认是不开启集群模式 。cluster-enabled yes # 集群配置文件的名称,每个节点都有一个集群相关的配置文件,持久化保存集群的信息 。这个文件并不需要手动配置,这个配置文件有Redis生成并更新,每个Redis集群节点需要一个单独的配置文件,请确保与实例运行的系统中配置文件名称不冲突# cluster-config-file nodes-a.conf # 节点互连超时的阀值 。集群节点超时毫秒数# cluster-node-timeout 15000 # 在进行故障转移的时候,全部slave都会请求申请为master,但是有些slave可能与master断开连接一段时间了,导致数据过于陈旧,这样的slave不应该被提升为master 。该参数就是用来判断slave节点与master断线的时间是否过长 。判断方法是:# 比较slave断开连接的时间和(node-timeout * slave-validity-factor) +repl-ping-slave-period# 如果节点超时时间为三十秒, 并且slave-validity-factor为10,假设默认的repl-ping-slave-period是10秒,即如果超过310秒slave将不会尝试进行故障转移 cluster-slave-validity-factor 10 # master的slave数量大于该值,slave才能迁移到其他孤立master上,如这个参数若被设为2,那么只有当一个主节点拥有2 个可工作的从节点时,它的一个从节点会尝试迁移 。cluster-migration-barrier 1 # 默认情况下,集群全部的slot有节点负责,集群状态才为ok,才能提供服务 。设置为no,可以在slot没有全部分配的时候提供服务 。不建议打开该配置,这样会造成分区的时候,小分区的master一直在接受写请求,而造成很长时间数据不一致 。cluster-require-full-coverage yes7.慢查询日志
# slog log是用来记录redis运行中执行比较慢的命令耗时 。当命令的执行超过了指定时间,就记录在slow log中,slog log保存在内存中,所以没有IO操作 。# 执行时间比slowlog-log-slower-than大的请求记录到slowlog里面,单位是微秒,所以1000000就是1秒 。注意,负数时间会禁用慢查询日志,而0则会强制记录所有命令 。slowlog-log-slower-than 10000 # 慢查询日志长度 。当一个新的命令被写进日志的时候,最老的那个记录会被删掉 。这个长度没有限制 。只要有足够的内存就行 。你可以通过 SLOWLOG RESET 来释放内存 。slowlog-max-len 128# 延迟监控功能是用来监控redis中执行比较缓慢的一些操作,用LATENCY打印redis实例在跑命令时的耗时图表 。只记录大于等于下边设置的值的操作 。0的话,就是关闭监视 。默认延迟监控功能是关闭的,如果你需要打开,也可以通过CONFIG SET命令动态设置latency-monitor-threshold 08.事件通知配置
# 键空间通知使得客户端可以通过订阅频道或模式,来接收那些以某种方式改动了 Redis 数据集的事件 。因为开启键空间通知功能需要消耗一些 CPU ,所以在默认配置下,该功能处于关闭状态 。# notify-keyspace-events的参数可以是以下字符的任意组合,它指定了服务器该发送哪些类型的通知:##K 键空间通知,所有通知以 __keyspace@__ 为前缀##E 键事件通知,所有通知以 __keyevent@__ 为前缀##g DEL 、 EXPIRE 、 RENAME 等类型无关的通用命令的通知##$ 字符串命令的通知##l 列表命令的通知##s 集合命令的通知##h 哈希命令的通知##z 有序集合命令的通知##x 过期事件:每当有过期键被删除时发送##e 驱逐(evict)事件:每当有键因为 maxmemory 政策而被删除时发送##A 参数 g$lshzxe 的别名# 输入的参数中至少要有一个 K 或者 E,否则的话,不管其余的参数是什么,都不会有任何 通知被分发 。notify-keyspace-events ""9.高级配置
# 数据量小于等于hash-max-ziplist-entries的用ziplist,大于hash-max-ziplist-entries用hashhash-max-ziplist-entries 512 # value大小小于等于hash-max-ziplist-value的用ziplist,大于hash-max-ziplist-value用hashhash-max-ziplist-value 64 # -5:最大大小:64 KB<--不建议用于正常工作负载# -4:最大大小:32 KB<--不推荐# -3:最大大小:16 KB<--可能不推荐# -2:最大大小:8kb<--良好# -1:最大大小:4kb<--良好list-max-ziplist-size -2 # 0:禁用所有列表压缩# 1:深度1表示“在列表中的1个节点之后才开始压缩,# 从头部或尾部# 所以:【head】->node->node->…->node->【tail】# [头部],[尾部]将始终未压缩;内部节点将压缩 。# 2:[头部]->[下一步]->节点->节点->…->节点->[上一步]->[尾部]# 2这里的意思是:不要压缩头部或头部->下一个或尾部->上一个或尾部,# 但是压缩它们之间的所有节点 。# 3:[头部]->[下一步]->[下一步]->节点->节点->…->节点->[上一步]->[上一步]->[尾部]list-compress-depth 0 # 数据量小于等于set-max-intset-entries用iniset,大于set-max-intset-entries用setset-max-intset-entries 512 # 数据量小于等于zset-max-ziplist-entries用ziplist,大于zset-max-ziplist-entries用zsetzset-max-ziplist-entries 128 # value大小小于等于zset-max-ziplist-value用ziplist,大于zset-max-ziplist-value用zsetzset-max-ziplist-value 64 # value大小小于等于hll-sparse-max-bytes使用稀疏数据结构(sparse),大于hll-sparse-max-bytes使用稠密的数据结构(dense) 。一个比16000大的value是几乎没用的,建议的value大概为3000 。如果对CPU要求不高,对空间要求较高的,建议设置到10000左右hll-sparse-max-bytes 3000 # 宏观节点的最大流/项目的大小 。在流数据结构是一个基数# 树节点编码在这项大的多 。利用这个配置它是如何可能#大节点配置是单字节和# 最大项目数,这可能包含了在切换到新节点的时候# appending新的流条目 。如果任何以下设置来设置# ignored极限是零,例如,操作系统,它有可能只是一集通过设置限制最大#纪录到最大字节0和最大输入到所需的值stream-node-max-bytes 4096stream-node-max-entries 100 # Redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用 。当你的使用场景中,有非常严格的实时性需要,不能够接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no 。如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存activerehashing yes # 对客户端输出缓冲进行限制可以强迫那些不从服务器读取数据的客户端断开连接,用来强制关闭传输缓慢的客户端 。# 对于normal client,第一个0表示取消hardlimit,第二个0和第三个0表示取消soft limit,normal client默认取消限制,因为如果没有寻问,他们是不会接收数据client-output-buffer-limit normal 0 0 0 # 对于slave client和MONITERclient,如果client-output-buffer一旦超过256mb,又或者超过64mb持续60秒,那么服务器就会立即断开客户端连接client-output-buffer-limit replica 256mb 64mb 60 # 对于pubsub client,如果client-output-buffer一旦超过32mb,又或者超过8mb持续60秒,那么服务器就会立即断开客户端连接client-output-buffer-limit pubsub 32mb 8mb 60 # 这是客户端查询的缓存极限值大小client-query-buffer-limit 1gb # 在redis协议中,批量请求,即表示单个字符串,通常限制为512MB 。但是您可以更改此限制 。# proto-max-bulk-len 512mb # redis执行任务的频率为1s除以hzhz 10 # 当启用动态赫兹时,实际配置的赫兹将用作作为基线,但实际配置的赫兹值的倍数# 在连接更多客户端后根据需要使用 。这样一个闲置的实例将占用很少的CPU时间,而繁忙的实例将反应更灵敏dynamic-hz yes # 在aof重写的时候,如果打开了aof-rewrite-incremental-fsync开关,系统会每32MB执行一次fsync 。这对于把文件写入磁盘是有帮助的,可以避免过大的延迟峰值aof-rewrite-incremental-fsync yes # 在rdb保存的时候,如果打开了rdb-save-incremental-fsync开关,系统会每32MB执行一次fsync 。这对于把文件写入磁盘是有帮助的,可以避免过大的延迟峰值rdb-save-incremental-fsync yes
推荐阅读
- 黑客“实战”内容之Redis未授权访问漏洞复现
- 分享mysql配置文件my.cnf一键生成器
- Redis一主二从Sentinel监控配置
- 联想笔记本推荐哪款 联想值得推荐的笔记本电脑
- 解决了redis的这些问题,你就是redis高手
- 华为哪款笔记本电脑性价比高 华为笔记本电脑哪款功能好性价比高i7
- Redis的模糊查询在生产环境出现严重的性能问题
- 华为笔记本电脑有摄像头吗
- 赛扬j4115笔记本
- 联想笔记本怎么截图和保存 惠普笔记本怎么截图和保存