【问题标题】:Touch/Increase Laravel Redis Throttle触摸/增加 Laravel Redis 油门
【发布时间】:2020-10-14 02:07:41
【问题描述】:

我以 Laravel 的 Redis Throttle 为例进行一些 API 通信:

Redis::throttle('key')
                ->block(0)->allow(100)->every(5)
                ->then(function () use ($job, $next) {    
                 // do stuff
                }, function () use ($job) {
                   $job->release(5);
                });
    }

但是在系统的其他部分(现在还没有完全重构)我需要在不真正阻塞调用的情况下触动油门(标记我使用它)。

我该怎么做?谢谢。

【问题讨论】:

    标签: laravel redis throttling


    【解决方案1】:

    密钥作为散列存储在 redis 数据库中。如果我的密钥被命名为“key”,它会存储在 app_name_database_key 上并具有以下格式

    redis:6379> HGETALL app_name_database_key
    
    1) "start"
    2) "1592994588"
    3) "end"
    4) "1592994688"
    5) "count"
    6) "12"
    

    因此它可以通过 Redis Facade 访问,而无需调整前缀。

    >>> Illuminate\Support\Facades\Redis::hget('key', 'count');
    => "10"
    

    同样的方法可以增加它

    >>> Illuminate\Support\Facades\Redis::hincrby('key', 'count', 1);
    => 11
    

    【讨论】:

      猜你喜欢
      • 2020-07-10
      • 2019-03-16
      • 1970-01-01
      • 2023-02-04
      • 2020-06-01
      • 2019-01-22
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多