温馨提示×

centos redis限速如何配置

小樊
47
2026-10-02 22:17:13
栏目: 云计算

在 CentOS 上给 Redis 做“限速”,通常不是 Redis 原生直接支持“QPS 限速”,而是通过多种方式组合来实现。下面按常见场景给你说明配置方法。


一、Redis 自身相关配置(间接限速)

1. 限制最大连接数(防止连接风暴)

编辑 Redis 配置文件(通常是 /etc/redis.conf 或 /etc/redis/redis.conf):

maxclients 1000

重启 Redis:

systemctl restart redis

超过该连接数,新连接会被拒绝。


2. 限制内存使用(防止雪崩)

maxmemory 2gb
maxmemory-policy allkeys-lru

二、使用 Redis + 应用层限速(最常用)

1. 基于 Redis 的令牌桶 / 计数器(推荐)

在应用代码里用 Redis 实现限速,例如:

示例:每秒最多 10 次请求

# 使用 INCR + EXPIRE
INCR rate_limit:user:123
EXPIRE rate_limit:user:123 1

如果值 > 10,则拒绝请求。

或用 Lua 脚本保证原子性。


三、使用 Redis 模块(高级)

1. Redis Cell(令牌桶限速模块)

支持命令:

CL.THROTTLE user:123 100 10 1

安装方式(CentOS):

git clone https://github.com/brandur/redis-cell
cd redis-cell
make

在 redis.conf 中加载:

loadmodule /path/to/libredis_cell.so

四、在 CentOS 网络层限速(不区分 Redis 命令)

1. 使用 iptables 限制 Redis 端口速率

iptables -A INPUT -p tcp --dport 6379 -m limit --limit 100/s -j ACCEPT
iptables -A INPUT -p tcp --dport 6379 -j DROP

这是“连接/包”级别限速,不够精细。


五、使用代理层限速(生产推荐)

1. Redis + Nginx / Twemproxy / Codis

  • Nginx(stream 模块)可限制连接速率
  • 应用前置 API 网关做限流

六、推荐方案总结

场景 推荐方式
接口级限速 Redis + 应用逻辑
用户级限速 Redis 计数器 / Redis Cell
防护攻击 iptables + maxclients
生产高并发 Redis + 网关限流

如果你能说明:

  • Redis 版本
  • CentOS 版本
  • 限速对象(IP / 用户 / 命令)
  • 目标(QPS / 连接数)

我可以给你更具体的配置示例。

0 踩