当前位置: 首页 > 网络应用技术

建筑师如何解释Redis电流桶

时间:2023-03-07 03:04:48 网络应用技术

  令牌枪管算法相对简单。这就像通过摇晃数字购买房屋。获得这个数字的人才有资格购买。那些没有得到这个数字的人只能在下一次等待(幸运的是,小小的不需要摇晃,因为它负担不起!)。

  在实际开发中,系统将维护一个容器以存储令牌,并且系统将以固定的速率添加令牌。该费率通常是更系统的处理能力。当客户的请求过来时,有必要在处理请求之前从令牌存储桶中获取令牌,否则服务将直接拒绝。

  令牌枪管的关键是分配令牌速率和令牌枪管的容量。

  有很多方法可以实施Tokend Barrel。本文介绍了基于Redis的Redis细胞流量限制模块。这是Redis提供的分布式系统,高效率和准确的流量限制方法。非常简单!

  REDIS默认情况下不会集成Retis-Cell的电流限制模块。就像使用Bloom过滤器Redis一样。我们还需要安装和集成模块。

  Redis-Cell的GitHub地址:

  https://github.com/brandur/redis-cll

  REDIS细胞是根据Rust语言开发的。如果您不想花能量进入生锈环境,则可以直接下载与操作系统相对应的安装程序包(这很重要,我已经安装了很多次,如果安装有更多问题,是否有更多的安装问题。如果您是,也建议您减少发布版本!)

  下载相应的安装程序包:

  https://github.com/brandur/redis-cell/releases/download/v0.3.0/redis-d0.3.0-ramv7-linux-gnueabihf.gz

  如果您不知道服务器(Linux)版本,则可以在下载安装软件包之前先进行检查:

  指令Cl.Throttle参数含义

  输出参数的含义

  这里唯一的歧义可能是max_burst。这不是令牌枪管的最大容量。也可以从作者在作者的readme.md中的解释中看到它

  密钥的主要限制(max_burst + 1)。这等同于命令x -rateLimit -limit HTTP标头。

  redis命令接口定义:

  Redis-Cell令牌枪管有限的流媒体定义:

  测试代码:

  测试结果(这里还表明令牌枪管的容量是max_burst + 1):