??? ??????? ?? ????? ???? ????? ???? ????? ??? ??? ?????. ?? ?? ??? ?? ??? ?? ?? ??? ????. ? ?? ??? Redis? ???? ?? ??? ???? ????. ? ????? Redis? ???? ThinkPHP6?? ?? ??? ???? ??? ?????.
1. ?? ?????
?? ??? ???? ???? ???? ??? ???? ?? ??? ???? ?? ?? ???? ???????. ?? ??? ???? ???? ?? ??? ???, ?? ????? ???? ??? Leaky Bucket ????? Token Bucket ???????.
?? ?? ????? ??? ?? ???? ??? ??? ?? ??? ?? ????. ? ??? ?? ?? ??? ??? ? ????. ? ??? ??? ??? ??? ???? ??? ? ??? ????, Leaky Bucket? ?? ??? ????? ??? ???? ???.
?? ?? ????? ??? ???? ?? ???? ?????. ??? ??? ?? ? ??? ??? ??? ? ????. ? ??? Leaky Bucket ?????? ????? ?? ?? ??? ?? ???? ???? ???.
2. ThinkPHP6?? Redis? ???? ?? ??? ???? ??
1. Redis ?? ??
Redis? ???? ?? ??? ???? ?? Redis ?? ? Redis ??? ???? ???.
Windows? ?? ??, Windows ?? ?????? Redis ??? ?? ?????? ??? ? ????. PHP? Redis ??? ????? PECL ??? ?????. ????? ???? ?? ??? ?????.
pecl install redis
2. Redis ??
ThinkPHP6?? Redis? ????? ?? ???? ?? ?? ??? ???? ???. ?? ?? ??? config/redis.php???.
? ????? ???, ??, ?????? ? ?? ????? ???? ???. ???? Redis ??? ??? ??? ????, ??? Redis ??? ?? ??? ????, ????? Redis ??? ???? ?? ?? ????? ?????. Redis ??? ????? ???? ?? ?? ? ??? ?? ? ? ????.
3. ?? ?? ?? ??
Redis? ???? ????? ?? ?? ????? ???? ThinkPHP6?? ?? ??? ?????. ?? ??? ??? ????.
use thinkacadeCache; class TokenBucketRedisLimiter { private $maxTokens; // 桶的容量 private $tokensPerSecond; // 令牌生成速率 private $lastRefillTime; // 上次生成令牌時間 private $tokens; // 當前桶中令牌數(shù) private $redisKey; // Redis中存儲桶的鍵名 private $redis; // Redis連接對象 public function __construct($redisKey, $maxTokens, $tokensPerSecond) { $this->redis = Cache::handler(); // 獲取Redis連接對象 $this->redisKey = $redisKey; // 存儲的鍵名 $this->maxTokens = $maxTokens; // 桶的容量 $this->tokensPerSecond = $tokensPerSecond; // 令牌生成速率 $this->lastRefillTime = microtime(true); // 上次生成令牌時間 $this->tokens = 0; // 當前桶中令牌數(shù) } public function consume() { $this->refillTokens(); if ($this->tokens <= 0) { return false; // 沒有令牌,請求被拒絕 } $this->tokens--; $this->redis->set($this->redisKey, $this->tokens); // 更新Redis中存儲的令牌數(shù) return true; // 請求通過,獲得了一個令牌 } private function refillTokens() { $now = microtime(true); $timeDelta = $now - $this->lastRefillTime; // 上次生成令牌到現(xiàn)在的時間 $newTokens = $timeDelta * $this->tokensPerSecond; // 生成新的令牌數(shù) $this->tokens = min($this->tokens + $newTokens, $this->maxTokens); // 更新令牌數(shù) $this->lastRefillTime = $now; // 更新上次生成令牌時間 // 將桶的容量存儲到Redis中 $this->redis->set($this->redisKey . ':maxTokens', $this->maxTokens); } }
? ???? ?? ??? Redis?? ??? ???? ?? ???? ??? ?? ???? ????.
3. ??
? ???? ThinkPHP6?? Redis? ???? ?? ??? ???? ??? ?????. Redis? ???? ?? ??? ???? ??? ??? ???? ??? ? ??? ?? ? ?? ?????. ??? ? Redis ??? ???? ?? ??? ?? ?? ?? ????? ???? ???.
? ??? Redis? ???? ThinkPHP6?? ?? ?? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

?? ?? ???? Laravel ??? ???? ??? ??? ????. 1. windows : XAMPP? ???? PHP ? Composer? ???? ?? ??? ???? Laravel? ?????. 2.MAC : Homebrew? ???? PHP ? ???? ???? Laravel? ??????. 3.Linux : Ubuntu? ???? ???? ?????? PHP ? Composer? ???? Laravel? ??????. ? ???? ?? ??? ??? ???? ?? ??? Laravel ?? ??? ??? ??? ???? ?? ?????.

Redis? ???? ?? ?? ???????? ???? ?? ?? ????? ?? ? ??? ?? ? ???? ???? ???? ????. 1.Redis? ??? ??, ?? ?? ? ?? ??, ?? ??? ? ?? ?? ?? ?? ??? ?????. 2. ???? ??????? ???? ?????? ??? ?? ? ???? ??? ???? ??? ???? ???? ????. 3. Redis? ?? ??????? ?? ?? ???? ????? ?? ???? ??? ?? ???????.

Linux System? Ulimit ??? ?? ??? ???? ???? ??? ??? ??? ?????. 1. ulimit? ?? ??? ? (-n), ??? ?? (-v), ??? ??? (-u) ?? ?? ? ??? ?? ? ? ?????. 2. ULIMIT-N2048? ?? ?? ??? ?? ULIMIT ??? ?? ????? ?? ???? ?????. 3. ??? ? ??? ???? /etc/security/limits.conf ? pam ?? ??? ???? sessionRequiredPam_limits.so? ???????. 4. SystemD ???? ?? ???? lim? ???????.

Redis? ?? ????????? ??? ?????? ?????. 1. ???????? Redis? ???? ???? ??? ??? ?????. 2. ???? Redis? ?? ???? ?? ??? ??????. 3. ??? ?????? Redis? ??? ??????? ??? Publish-Subscribe ??? ?????.

redisisanopen-source, in-memorydatructurestorestoreusedasadatabase, cache ? messagebroker, excell

Redis? ???? ????? ?? SQL ??????? ?? ????. 1) Redis? ??? ????? ?? ?? ?? ?? ? ?? ??? ?????. 2) ??? ??? ??? ??? ?? ? ???? ?? ??? ??? ??? ?????. 3) ?? ??? ??? ??? ?????? ?? ???? ?? ??? ? ? ????.

PHPStudy? ???? ?? PHP ? ???? ???? ???? ??? ?????. 1. PHPStudy ?? ? ??? ??; 2. ? ??? ?? ???? ? ?????? ??? ?????. 3. ?? ???? ???? ?? PHP ????? ??????. 4. ? ??? ??? ????? ???????. ? ??? ?? ??? ???? ?? PHP ? ???? ???? ?? ? ? ????.

Laravel? ??? ?? ??? ? ??? ??? ?? ???? ? ????. 1) ?? ?? ??? ???? ?? :: ?? ???? ?? ??? ??? ??????. 2) Redis? ?? ??? ?? ???? ??????. 3) ??? ??? ?????? ???? ??? ?? ?? ??? ???? ???? ??? ?? ? ????. 4) ?? ???? ??? ??, ?? ? ?? ????? ?????. ??? ??? ????? ?????? ? ??? ??? ????? ???? ? ????.
