热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

redis命令别名_爆肝三天整理的Redis配置大全(一)

“点击关注Coding小暮,获取更多优质内容哦”吐血整理Redis配置大全(一)肝了好久,终于把Redis.conf整理完了。这篇文章我准备分三部分写。

 点击关注Coding小暮,获取更多优质内容哦

吐血整理Redis配置大全(一)

00954c412401d95970845e8385fffce9.png肝了好久,终于把Redis.conf 整理完了。这篇文章我准备分三部分写。

  1. Redis的单机配置
  2. 高可用主从同步相关配置
  3. 优化内存安全等

今天先写第一部分:Redis的单机配置,本篇内容包括以下几点。

  1. 加载外部配置
  2. 加载外部配置
  3. 网络配置
  4. 常规配置
  5. 日志配置
  6. 事件通知
  7. 高级设置
  8. Docker集群配置

加载外部配置
include /path/to/local.conf

没啥好说的,如果你的redis需要有额外的配置,或者公共配置的话,可以再此include配置。

加载外部模块
loadmodule /path/to/my_module.so

Redis可选的模块其实还挺多的,比如说布隆过滤器(RedisBloom),就需要loadmodule来加载它。

网络篇

如果bind的是127.0.0.1,那么也就意味着只有本机才能访问
bind 127.0.0.1

bind命令是指可以连接本服务的ip+port,默认情况下是127.0.0.1,生产环境一般用于指定固定的一批服务器。千万不能注释此行配置,不然会将Redis暴露到公网上,任何客户端都可以连接。

保护模式
protected-mode yes

当保护模式打开时,如果:1)服务器未使用以下命令明确绑定到一组地址    "bind" directive. 2)没有配置密码。服务器仅接受来自从IPv4和IPv6回溯地址127.0.0.1和::: 1以及来自Unix domain socket的客户端的连接。

port 6379 

没啥好说的,指定Redis的启动端口号,默认也就是6379.

tcp-backlog 511

此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。

timeout 0

在客户端空闲N秒后关闭连接(0表示禁用)

tcp-keepalive 300

TCP keepalive. TCP会话保持,心跳检测。如果不为0的话,在没有通信的情况下使用SO_KEEPALIVE向客户端发送TCP ACK。

常规配置篇

daemonize no

是否需要在/var/run/redis.pid 写入一个pid文件,没啥乱用的配置

loglevel notice

指定日志级别,以下是可选项 debug (会打印很多信息,对于开发/测试很有用) verbose (许多很少有用的信息,但不会像调试级别那样混乱) notice (中等冗长,适合在生产环境使用) warning (仅记录非常重要/重要的消息)

logfile ""

指定日志文件名。 请注意,如果您使用标准输出进行日志记录,但是服务以守护进程运行,日志将被发送到/dev/null

syslog-enabled no

要启用对系统记录器的日志记录,只需将“syslog enabled”设置为yes,并根据需要更新其他syslog参数。

下面几个参数都是几乎不用改动的
syslog-ident redis
#指定系统日志标识。
syslog-facility local0
#指定系统日志工具。必须是USER或介于LOCAL0-LOCAL7之间。
databases 16
#设置数据库的数量。默认数据库是db0,您可以使用select在每个连接的基础上选择一个不同的数据库
always-show-logo yes
#是否显示redis的logo,没啥卵用

日志配置

Redis慢查询日志系统用于记录超过指定执行时间的查询。执行时间不包括I/O操作,比如与客户端,发送、应答等等,指记录实际执行命令所需的时间

slowlog-log-slower-than 10000

单位微秒,所以1000000等于一秒。注意,负数表示禁用慢日志,而0则表示强制记录每个命令。

slowlog-max-len 128

限制日志长度,它会占用少许内存。

事件通知

Redis可以通知Pub/Sub客户端在kyes space 中发生的事件。这个特性在 http://redis.io/topics/notifications 中有记录

notify-keyspace-events ""

可以选择Redis将在一组类中通知的事件。每个类都由一个字符来标识: K     Keyspace 事件, 以 keyspace@ 前缀发布. E     Keyevent 事件, 以 keyevent@ 前缀发布. g     通用命令( 非特定类型) like DEL, EXPIRE, RENAME, ...

lshzxe的别名,例如“AKE”字符串表示所有的事件。"notify-keyspace-events"接受一个由零或多个字符组成的字符串作为参数。空字符串意味着禁用通知。例如:notify-keyspace-events Elg

高级设置

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

Hash压缩,hash-max-ziplist-entries表示集合超过一定的条目数量,hash-max-ziplist-value表示单个value的大小超过一定阈值,则会采用一种特殊的哈希算法

list-max-ziplist-size -2

List列表也以一种特殊的方式进行编码,以节省大量空间。每个内部列表节点允许的条目数可以指定为固定的最大大小或元素的最大数量。可选范围:-5: max size: 64 Kb  

list-compress-depth 0

指定头尾排除压缩的数量。List本身是双向链表,从头尾部分取出的数据概览较高,所以可以指定头尾前几位不压缩,以保障快速取出

set-max-intset-entries 512

当set集合的大小等于 set-max-intset-entries 设置的值,开始使用特殊编码来节省内存

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

与Hash和List类似,为了节省大量空间,Zset也被特殊编码。上面两个参数 zset-max-ziplist-entries 指定了最大条目数,在次条目数以内,不进行特殊编码,zset-max-ziplist-value 配置同理。

hll-sparse-max-bytes 3000

表示HyperLogLog稀疏字节限制,大于这个字节将改为稠密存储

activerehashing yes

哈希刷新,每100个CPU时间会拿出1个毫秒来刷新Redis的主哈希表,默认是每秒钟进行10次哈希表刷新,用来刷新字典,然后尽快释放内存。 如果你对延迟比较在意的话就用 "activerehashing no",此配置意为Redis将降低客户端请求的延迟,但是不会很及时的清理内存。

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

客户端输出缓冲区限制,可用于强制断开由于某些原因而不能足够快地从服务器读取数据的客户端。三种不同类别的客户端可分别设定上限:  normal -> 正常客户端,包括监视客户端 slave  -> slave clients pubsub -> 客户端至少订阅了一个pubsub频道或模式 每个client-output-buffer-limit指令的语法如下: client-output-buffer-limithard limit 和 soft limit 设置为0 ,则是关闭改限制 Redis 缓冲区保护机制:1. 大小限制,当某一客户端缓冲区超过设定值后直接关闭连接 2. 持续时间限制,某一客户端缓冲区持续一段时间占用过大空间时关闭连接

  1. 对于普通客户端来说,限制为0,也就是不限制。因为普通客户端通常采用阻塞式的消息应答模式,何谓阻塞式呢?如:发送请求,等待返回,再发送请求,再等待返回。这种模式下,通常不会导致Redis服务器输出缓冲区的堆积膨胀;

  2. 对于slave客户端来说,大小限制是256M,持续性限制是当客户端缓冲区大小持续60秒超过64M,则关闭客户端连接。

  3. 对于Pub/Sub客户端(也就是发布/订阅模式),大小限制是8M,当输出缓冲区超过8M时,会关闭连接。持续性限制是,当客户端缓冲区大小持续60秒超过2M,则关闭客户端连接;

client-query-buffer-limit 1gb

查询缓冲区,客户端查询缓冲区会积累新的命令。默认情况下,它们被限制为1gb,以避免协议去同步将导致查询缓冲区中未绑定的内存使用。然而,如果你有非常特殊的需求,你可以在这里配置它。

proto-max-bulk-len 512mb

在Redis协议中,批量请求,即代表单个字符串的大小,通常限制为 512mb,但是你可以在这里改变这个限制。

hz 10

Redis调用一个内部函数来执行许多后台任务,比如超时关闭客户端连接,清除从未请求的过期密钥,等等。并不是所有的任务都以相同的频率执行,但是Redis会根据指定的“hz”值检查要执行的任务。默认情况下“hz”被设置为10。当Redis处于空闲状态时,提高值会占用更多的CPU,但同时当有多个键同时失效时,会使Redis响应更快,超时处理可能会更精确。可选范围0到100,默认10

aof-rewrite-incremental-fsync yes

当子进程重写AOF文件时,如果启用了以下选项,该文件将每生成32 MB的数据进行fsync。这有助于将文件以增量方式提交到磁盘,并避免出现较大的延迟峰值。


c5b31f53b31590455d1817f704cc4116.png

      老夫准备了一下java学习资料,就在我的公众号里3518d9a3a3657bed344c89d0edc91c1e.png。少侠可以关注我的公众号在底部点击学习资料便可以免费获取了。祝少侠早日练就一身本领,行侠仗义、前程似锦。8294939be177458537ccb791a6978fab.png

4acfb31bfe2ba544901c0a9985feca61.gif




推荐阅读
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了一道经典的状态压缩题目——关灯问题2,并提供了解决该问题的算法思路。通过使用二进制表示灯的状态,并枚举所有可能的状态,可以求解出最少按按钮的次数,从而将所有灯关掉。本文还对状压和位运算进行了解释,并指出了该方法的适用性和局限性。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了最长上升子序列问题的一个变种解法,通过记录拐点的位置,将问题拆分为左右两个LIS问题。详细讲解了算法的实现过程,并给出了相应的代码。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
author-avatar
果博东方手机版
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有