redis全配置文件解析

我不是女神ヾ 2024-02-17 11:38 144阅读 0赞
  1. #------------------------------------------核心配置项-----------------------------------------------
  2. # 配置说明:指定 Redis 服务器绑定的 IP 地址的选项
  3. # 常见示例1:127.0.0.1(Redis 只绑定到本地回环地址,只允许本地访问)
  4. # 常见示例2:192.168.0.100(Redis 只绑定到指定的 IP 地址,只允许来自该 IP 地址的客户端连接)
  5. # 常见示例3:0.0.0.0(Redis 绑定到所有可用的 IP 地址,允许来自任何 IP 地址的客户端连接)
  6. bind 0.0.0.0
  7. # 配置说明:Redis 服务器监听客户端连接的端口号
  8. # 常见示例1:6379(Redis 使用默认的 6379 端口进行监听)
  9. # 常见示例2:6380(Redis 使用非默认的 6380 端口进行监听)
  10. port 6379
  11. # 配置说明:设置Redis服务器使用的最大内存限制
  12. # 备注:Redis是一个基于内存的数据库,它将所有的数据存储在内存中。当数据量超过可用内存时,Redis需要采取一些策略来管理内存使用情况
  13. #当Redis的内存使用达到 maxmemory 限制时,Redis将采取一些策略来管理内存,如使用LRU(最近最少使用)算法删除最近最少使用的键,或者将一些键值对进行过期删除
  14. #当Redis达到 maxmemory 限制时,继续写入数据将导致写入操作失败或出现错误。因此,需要根据可用内存和数据量来合理设置 maxmemory 选项,以避免内存不足的情况发生
  15. maxmemory 4096mb
  16. # 配置说明:Redis 服务器所能接受的最大客户端连接数
  17. # 备注:值为10000,表示最大连接数为 10000
  18. maxclients 10000
  19. # 配置说明:Redis 服务器与客户端之间的连接超时时间
  20. # 常见示例1:30000(将连接的超时时间设置为 30 秒(30,000 毫秒))
  21. # 常见示例2:0(Redis 服务器与客户端之间的连接保持持久性,即不会主动关闭连接,无论客户端是否发送命令或数据)
  22. timeout 120
  23. # 配置说明:设置访问Redis服务器时需要提供的密码(密码验证)
  24. # 备注: 如果将 requirepass 设置为"1qaz",则客户端在连接到Redis服务器后需要执行"AUTH 1qaz"进行身份验证
  25. requirepass 1qaz
  26. #-----------------------------------------------------日志相关配置------------------------------------------------------------------------
  27. # 配置说明:日志级别
  28. # 常见示例1:debug(最详细的日志级别,用于调试目的。会记录大量的调试信息和细节)
  29. # 常见示例2:verbose(较高的日志级别,记录更多的信息,但比 debug 级别更少)
  30. # 常见示例3:notice(普通的日志级别,记录常规操作和提示信息)
  31. # 常见示例4:warning(警告级别,记录警告信息)
  32. # 常见示例5:critical(严重错误级别,记录严重错误信息)
  33. # 常见示例6:none(禁用日志,不记录任何信息)
  34. loglevel notice
  35. # 配置说明:Redis 服务器日志文件路径
  36. logfile "server_log.txt"
  37. # 配置说明:是否启用syslog
  38. # 常见示例1:yes(Redis会将日志信息发送到系统的syslog服务。这意味着Redis的日志将与其他系统日志一起记录,可以更方便地进行集中管理和分析)
  39. # 常见示例2:no(Redis将默认将日志信息输出到标准输出(stdout)或者指定的日志文件)
  40. syslog-enabled yes
  41. # 配置说明:用于标识发送到syslog服务的日志消息的一个字符串。它通常用于区分不同应用程序或服务的日志消息
  42. syslog-ident redis
  43. #-------------------------------------------------------持久化配置RDB------------------------------------------------------------------------------
  44. # 配置说明:自动进行快照(snapshot)持久化的条件
  45. # 备注:Redis支持将数据持久化到磁盘,以防止服务器重启或意外断电导致数据丢失。快照持久化是其中一种持久化方式,它会将数据库的当前状态保存到磁盘上的一个快照文件中
  46. # 在 save 900 1 中, 900 表示时间条件,表示当900秒(15分钟)内发生至少1次修改时,触发快照持久化。换句话说,如果在15分钟内有至少1次数据库修改操作,则Redis会自动执行快照持久化
  47. save 900 1
  48. save 300 10
  49. save 60 10000
  50. # 配置说明:控制在后台保存(bgsave)出错时是否停止写入操作
  51. # 常见示例1:yes(如果后台保存操作出错,Redis将停止接受写入操作。这是为了避免在持久化操作出错的情况下可能导致的数据丢失)
  52. # 常见示例2:no(即使后台保存操作出错,Redis仍然会继续接受写入操作。这可能会导致在持久化问题解决之前,写入的数据不会被持久化到磁盘上)
  53. stop-writes-on-bgsave-error yes
  54. # 配置说明:设置是否对RDB文件进行压缩
  55. # 常见示例1:yes(默认情况下Redis会对RDB文件进行压缩。这意味着生成的RDB文件将以压缩的形式保存在磁盘上,占用更少的存储空间)
  56. # 常见示例2:no(Redis将以二进制格式保存RDB文件,而不进行压缩。这可能会导致RDB文件占用更多的存储空间,但在保存和加载RDB文件时会更快)
  57. rdbcompression yes
  58. # 配置说明:设置是否在生成RDB文件时进行校验和检查
  59. # 常见示例1:yes(Redis在生成RDB文件时会计算校验和,并将其保存在RDB文件中。在加载RDB文件时,Redis会验证校验和以确保文件的完整性)
  60. # 常见示例2:no(Redis在生成RDB文件时不会计算校验和,也不会进行校验和的验证。这可能会提高生成和加载RDB文件的性能,但也会增加文件损坏或篡改的风险)
  61. rdbchecksum yes
  62. # 配置说明:RDB文件的名称
  63. dbfilename dump.rdb
  64. # 配置说明:RDB文件的文件夹地址
  65. dir ./
  66. #-------------------------------------------------------------持久化配置AOF------------------------------------------------------------------------------
  67. # 配置说明:控制AOF(Append-Only File)重写过程中是否使用增量fsync
  68. # 备注:AOF重写是Redis的一种机制,用于压缩和优化AOF文件的大小。它会创建一个新的AOF文件,其中只包含从数据库重建期间开始的写入操作。完成重写后,新的AOF文件将替换原始的AOF文件
  69. # 常见示例1:yes(Redis在AOF重写过程中会使用增量fsync。这意味着Redis会在每个写入操作完成后执行fsync操作,将数据同步到磁盘中)
  70. # 常见示例2:no(Redis在AOF重写过程中不会执行增量fsync,而是在重写完成后执行一次fsync操作来同步数据到磁盘)
  71. aof-rewrite-incremental-fsync yes
  72. # 配置说明:启用或禁用AOF(Append-Only File)持久化方式
  73. # 常见示例1:yes(AOF持久化将被启用。这意味着Redis会将每个写入操作追加到AOF文件中,以确保数据的持久性和安全性)
  74. # 常见示例2:no(AOF持久化将被禁用。这意味着Redis不会将写入操作追加到AOF文件中,而是仅依赖于RDB持久化或内存快照来进行数据的持久化)
  75. appendonly no
  76. # 配置说明:设置AOF(Append-Only File)持久化文件的名称
  77. #备注:如果在Redis启动时指定了 --appendfilename 参数,则该参数的值将覆盖配置文件中的 appendfilename 选项的设置
  78. appendfilename "appendonly.aof"
  79. # 配置说明:设置AOF(Append-Only File)持久化文件的同步策略
  80. # 常见示例1:always(每个写入操作都会立即同步到磁盘,最安全但性能最差)
  81. # 常见示例2:everysec(每秒同步一次,平衡了数据安全性和性能)
  82. # 常见示例3:no(不进行同步,完全依赖于操作系统的缓存机制,最高性能但数据安全性最差)
  83. appendfsync everysec
  84. # 配置说明:在AOF重写期间是否禁止AOF文件同步到磁盘
  85. # 常见示例1:yes(在AOF重写期间,Redis会暂时禁止AOF文件的同步到磁盘。这意味着在AOF重写期间,Redis不会将AOF缓冲区中的数据立即同步到磁盘,而是依赖于操作系统的缓存机制)
  86. # 常见示例2:no(对数据的安全性要求较高,建议将其保持为默认值"no")
  87. no-appendfsync-on-rewrite no
  88. # 配置说明:触发AOF重写的百分比阈值
  89. auto-aof-rewrite-percentage 100
  90. # 配置说明:触发AOF重写的最小AOF文件大小
  91. auto-aof-rewrite-min-size 64mb
  92. # 配置说明:控制在AOF(Append-Only File)文件加载过程中遇到截断的情况下的处理方式
  93. # 常见示例1:yes(可以告诉Redis在加载AOF文件时忽略截断的部分,并尽可能还原数据库的状态。但需要注意,这可能会导致数据的不一致性和丢失)
  94. # 常见示例2:no(如果数据的完整性对于应用非常重要,建议不要启用 aof-load-truncated ,而是修复AOF文件或使用其他备份来恢复数据)
  95. aof-load-truncated yes
  96. #----------------------------------------------------------主从同步相关配置--------------------------------------------------------
  97. # 配置说明:控制从服务器(slave)在与主服务器(master)断开连接时是否继续提供旧数据
  98. # 常见示例1:yes(从服务器会继续提供旧数据给客户端。这意味着即使与主服务器断开连接,从服务器仍会响应客户端的读取请求,并返回最后一次同步的数据。这可能会导致客户端读取到过期的数据)
  99. # 常见示例2:no(从服务器在与主服务器断开连接后将停止响应客户端的请求,直到与主服务器重新建立连接并同步数据)
  100. slave-serve-stale-data yes
  101. # 配置说明:控制从服务器(slave)是否只允许读取操作
  102. # 常见示例1:yes(从服务器将被设置为只读模式,只允许执行读取操作,禁止执行写入操作。这意味着客户端无法在从服务器上执行写入操作,只能进行读取操作)
  103. # 常见示例2:no(从服务器上可以执行写入操作)
  104. slave-read-only yes
  105. # 配置说明:控制从服务器(slave)在与主服务器(master)进行同步时是否使用无盘同步
  106. # 常见示例1:yes(从服务器在与主服务器进行同步时将使用无盘同步。这意味着数据将直接通过网络传输,而不写入从服务器的磁盘。无盘同步可以提高同步速度和性能,需要注意的是,启用无盘同步可能会增加网络带宽的使用量,特别是在同步大量数据时)
  107. # 常见示例2:no(使用磁盘进行同步)
  108. repl-diskless-sync no
  109. # 配置说明:从服务器(slave)在进行无盘同步时的延迟时间
  110. # 常见示例1:5(意味着从服务器在收到同步命令后会等待5秒,然后开始进行无盘同步)
  111. repl-diskless-sync-delay 5
  112. # 配置说明:控制从服务器(slave)与主服务器(master)之间的TCP_NODELAY选项是否启用
  113. # 备注:TCP_NODELAY是TCP协议的一个选项,用于控制数据包的延迟和传输效率。当TCP_NODELAY启用时,TCP协议会尽快发送数据包,以减少传输延迟,但可能会增加网络带宽的使用
  114. # 常见示例1:yes(从服务器与主服务器之间的TCP_NODELAY选项将被禁用。这意味着数据包可能会有一定的延迟,但可以减少网络带宽的使用)
  115. # 常见示例2:no(从服务器与主服务器之间的TCP_NODELAY选项将启用,数据包将尽快发送,以减少传输延迟)
  116. repl-disable-tcp-nodelay no
  117. # 配置说明:从服务器(slave)的优先级
  118. # 备注:在Redis主从复制中,从服务器通过复制主服务器的数据来保持数据的一致性。当主服务器不可用时,从服务器可以被选举为新的主服务器,优先级越高,被选举为新的主服务器的可能性越大。默认情况下,所有从服务器的优先级都为0,表示它们具有相同的优先级
  119. slave-priority 100
  120. #-----------------------------------------------------慢查询相关配置-------------------------------------------------------------
  121. # 配置说明:设置Lua脚本的执行时间限制
  122. # 备注:单位为毫秒 5000毫秒(即5秒)
  123. lua-time-limit 5000
  124. # 配置说明:设置慢查询日志的阈值,如果一个命令的执行时间超过这个阈值,Redis将记录该命令到慢查询日志中
  125. # 备注:10000微秒(即10毫秒)
  126. slowlog-log-slower-than 10000
  127. # 配置说明:慢查询日志的最大长度
  128. # 备注:值为128,即最多记录128条慢查询命令。当慢查询日志已满时,新的慢查询命令将覆盖旧的慢查询命令
  129. slowlog-max-len 128
  130. # 配置说明:设置慢操作的阈值,用于监视和记录执行时间超过阈值的命令
  131. # 备注:值为0,表示禁用慢操作监视。如果将 latency-monitor-threshold 设置为一个正整数值,Redis将记录执行时间超过该阈值的命令
  132. latency-monitor-threshold 0
  133. # 配置说明:配置键空间事件的通知
  134. # 常见示例1:K(键空间通知,即普通的键操作,如设置、删除等)
  135. # 常见示例2:E(键事件通知,即过期事件)
  136. # 常见示例3:g(通用命令通知,即发布/订阅、事务等命令的通知)
  137. # 常见示例4:$(字符串命令通知,即字符串类型的命令通知)
  138. # 常见示例5:l(列表命令通知,即列表类型的命令通知)
  139. # 常见示例6:s(集合命令通知,即集合类型的命令通知)
  140. # 常见示例7:h(哈希命令通知,即哈希类型的命令通知)
  141. # 常见示例8:z(有序集合命令通知,即有序集合类型的命令通知)
  142. # 常见示例9:x(过期事件通知,即过期事件的通知)
  143. # 常见示例10:e(驱逐事件通知,即被驱逐的键事件通知)
  144. notify-keyspace-events ""
  145. #----------------------------------------------------数据ziplist编码---------------------------------------------------------
  146. # 配置说明:哈希类型数据在使用ziplist编码时,每个ziplist节点(压缩列表节点)中最多可以存储的键值对数量。默认值为512
  147. hash-max-ziplist-entries 512
  148. # 配置说明:哈希类型数据在使用ziplist编码时,每个键值对的值的最大长度。默认值为64字节
  149. hash-max-ziplist-value 64
  150. # 配置说明:列表类型数据在使用ziplist编码时,每个ziplist节点(压缩列表节点)的最大长度
  151. list-max-ziplist-size -2
  152. # 配置说明:列表类型数据在使用ziplist编码时进行压缩的深度
  153. # 备注:值为0,表示不进行压缩。当设置为非零的正整数时,Redis将尝试在ziplist节点的指定层级上进行压缩
  154. list-compress-depth 0
  155. # 配置说明:集合类型数据在使用intset编码时的最大元素数量
  156. # 备注:值为512,表示当集合中的元素数量超过512时,将使用hashtable编码
  157. set-max-intset-entries 512
  158. # 配置说明:有序集合在使用ziplist编码时的最大元素数量,ziplist是一种紧凑的数据结构,可以将多个元素存储在一个紧凑的内存块中。当有序集合中的元素数量超过 zset-max-ziplist-entries 的设置值时,Redis将自动转换为使用跳表(skiplist)编码
  159. zset-max-ziplist-entries 128
  160. # 配置说明:有序集合在使用ziplist编码时的最大元素值大小,ziplist编码可以将较小的元素值存储为整数,以节省内存空间。当有序集合中的元素值超过 zset-max-ziplist-value 的设置值时,Redis将自动转换为使用跳表编码
  161. zset-max-ziplist-value 64
  162. # 配置说明:HyperLogLog(HLL)稀疏编码的最大字节数
  163. # 备注:值为3000字节。这意味着当HLL数据结构的内存占用低于或等于3000字节时,将使用稀疏编码
  164. hll-sparse-max-bytes 3000
  165. # 配置说明:Redis在运行时是否执行主动的重新哈希操作
  166. # 常见示例1:yes(Redis会在运行时执行主动的重新哈希操作。这意味着当哈希表的负载因子超过阈值时,Redis会自动触发重新哈希操作,并将键值对重新分布到更大的哈希表中)
  167. # 常见示例2:no(Redis将禁止执行主动的重新哈希操作。这意味着Redis将维持当前的哈希表大小,并不会自动调整哈希表的大小)
  168. activerehashing yes
  169. #-------------------------------------------------------------其他配置--------------------------------------------------------------
  170. # 配置说明:设置客户端输出缓冲区的限制。它有三个参数,分别对应不同的客户端类型:normal、slave和pubsub
  171. # 常见示例1:normal(表示普通客户端,即非复制客户端和发布订阅客户端)
  172. # 0 0 0 表示没有限制,即不限制普通客户端的输出缓冲区大小。这意味着普通客户端可以使用任意大小的输出缓冲区
  173. # 常见示例2:slave (表示从服务器(slave)客户端)
  174. # 256mb 表示从服务器的输出缓冲区的硬限制。一旦达到这个限制,从服务器将被断开连接
  175. # 64mb 表示从服务器的输出缓冲区的软限制。一旦达到这个限制,从服务器将停止接收新的命令,直到输出缓冲区的大小降低到软限制以下
  176. # 60 表示从服务器的输出缓冲区的限制时间(秒)。如果在限制时间内无法降低输出缓冲区的大小到软限制以下,从服务器将被断开连接
  177. # 常见示例3:pubsub(表示发布订阅客户端)
  178. # 32mb 表示发布订阅客户端的输出缓冲区的硬限制
  179. # 8mb 表示发布订阅客户端的输出缓冲区的软限制
  180. # 60 表示发布订阅客户端的输出缓冲区的限制时间(秒)
  181. client-output-buffer-limit normal 0 0 0
  182. client-output-buffer-limit slave 256mb 64mb 60
  183. client-output-buffer-limit pubsub 32mb 8mb 60
  184. # 配置说明:服务器每秒执行事件循环的次数
  185. # 备注:值为10,表示服务器每秒执行事件循环10次。这意味着服务器每100毫秒执行一次事件循环
  186. hz 10
  187. # 配置说明:Redis 服务器的 TCP 连接请求队列的长度的选项。当 Redis 服务器并发连接数量较高时,如果连接请求超过队列的容量,那些超过队列长度的连接请求可能会被拒绝或丢失
  188. tcp-backlog 511
  189. # 配置说明:TCP Keepalive 是一种机制,用于检测处于空闲状态的 TCP 连接是否仍然有效。通过发送周期性的 Keepalive 消息,可以检测到连接是否已断开或变为无效状态,并及时采取相应的处理措施
  190. # 常见示例1:0(禁用 TCP Keepalive)
  191. # 常见示例2:非零值(启用 TCP Keepalive,并设置 Keepalive 消息的发送间隔(以秒为单位))
  192. tcp-keepalive 0
  193. # 配置说明:设置服务器中可用的数据库数量
  194. # 备注:默认情况下,Redis配置文件中的 databases 选项设置为16,这意味着可以创建16个不同的数据库实例(编号从0到15)。可以通过选择不同的数据库实例来组织和管理数据,每个数据库实例都是相互隔离的
  195. databases 16

发表评论

表情:
评论列表 (有 0 条评论,144人围观)

还没有评论,来说两句吧...

相关阅读