次のチュートリアルコラムでは、Laravel のキャッシュ破壊問題を解決するために Redis ロックを使用する方法を紹介します。困っている友達の役に立つでしょう!
キャッシュの故障は、開発中に発生する可能性のある問題です。キャッシュの故障とは、キャッシュ内にデータベースがないことを意味します。ただし、データベース キャッシュにはデータがいくつかあります (通常、キャッシュ時間が切れたとき)。このとき、同時ユーザーが非常に多いため、データは同時にキャッシュに読み込まれず、データはキャッシュからフェッチされます。同時にデータベースにも影響を与えるため、データベースの圧力が瞬時に上昇し、過剰な圧力が発生します。
Redis ロックは、キャッシュの故障の問題を解決する良い方法です。 Laravel 7 には\Illuminate\Cache\RedisLock
Redis ロック クラスが付属しています。これは直接使用でき、非常に便利です。
RedisLock
のコンストラクターは次のとおりです。
/** * @param \Illuminate\Redis\Connections\Connection $redis redis实例 * @param string $name redis锁的键名 * @param int $seconds redis锁的失效时间 * @param string|null $owner redis锁的值,如果不设置或者为null,基类会将其设置为随机字符串 */public function __construct($redis, $name, $seconds, $owner = null){ parent::__construct($name, $seconds, $owner); $this->redis = $redis;}
このクラスでは、acquire()
メソッドを使用して、相互に排他的な Redis ロックを取得します。 、
メソッドを使用してロックを解放します。 以上がLaravelでRedisロックを使用してキャッシュ貫通問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。使用例:
use Illuminate\Support\Facades\Redis;use Illuminate\Cache\RedisLock;