You need to enable JavaScript to run this app.
文档中心
缓存数据库 Redis 版

缓存数据库 Redis 版

复制全文
下载 pdf
参数管理
限制发布订阅客户端的输出缓冲区大小
复制全文
下载 pdf
限制发布订阅客户端的输出缓冲区大小
您可以通过自定义 client-output-buffer-pubsub 参数的值,来调整 Redis 为发布订阅客户端分配的缓冲区大小。当缓冲数据超过限制时,Redis 将断开订阅客户端的连接,防止这些数据占用过多的内存,影响 Redis 服务的性能。
Redis 的输出缓冲限制
Redis 为每个客户端分配了输出缓冲区(output buffer)。处理完客户端的命令后,Redis 将返回结果临时储存在输出缓冲区中,然后将这些数据发送给客户端。如果不对输出缓冲区的大小做出限制,输出缓冲区可能积累大量数据,甚至达到最大内存限制,导致服务崩溃。以下是出现该问题的两种典型场景:
  • 客户端命令的返回值过大。
  • 发布者(publisher)发布消息的速度大于订阅者(subscriber)消费消息的速度。
合理地设置 client-output-buffer-pubsub 参数可以避免发布订阅客户端的输出缓冲区占用内存过大对服务造成负面影响。
参数说明及设置建议
client-output-buffer-pubsub 包含三个选项:hard limitsoft limitsoft seconds
  • hard limit:用于指定一个硬限制值,单位:MB。当一个发布订阅客户端的输出缓冲区占用内存达到或超过 hard limit 的限制时,Redis 将断开该客户端的连接。
  • soft limit:用于指定一个软限制值,单位:MB;soft seconds 指定持续触发软限制的时间,单位:s。当一个发布订阅客户端的输出缓冲区占用内存达到或超过 soft limit 的限制,且该状态的持续时间达到 soft seconds 限定的秒数时,Redis 将断开该客户端的连接。
hard limitsoft limitsoft seconds 的默认值分别为 32 MB、8 MB 和 60s。您可以根据业务的实际情况来自定义这些选项的值。
操作步骤
  1. 登录 Redis 控制台
  1. 在顶部菜单栏的左上角,选择实例所属的项目和地域。
  1. 实例列表页,单击目标实例名称。
  1. 在实例详情页,单击参数配置页签。
  1. 参数列表子页签,单击批量修改参数,从参数列表中找到 client-output-buffer-pubsub 参数,并根据业务需要修改参数值。
  • 您可以在右侧搜索栏中输入参数名称进行筛选。
  1. 修改完成后,单击参数列表左上角的提交
  1. 在弹出的对话框中,确认需要修改的参数和参数值,单击确定
相关 API
API
描述
调用 DescribeDBInstanceParams 接口查询目标 Redis 实例支持的参数列表。
调用 ModifyDBInstanceParams 接口修改目标 Redis 实例的参数配置。
最近更新时间:2025.12.16 14:29:20
这个页面对您有帮助吗?
有用
有用
无用
无用