2
0

More than 3 years have passed since last update.

LaravelのRedisでワイルドカードのパターンに一致するキーを一括削除する

Last updated at Posted at 2021-09-13

Redisではキーにワイルドカードを使って一括削除するコマンドがありません。
今回はLaravel5.8でRedisのキーをワイルドカードを使って、一括削除する方法を共有します。

一括削除する方法(prefixあり)

$keyPattern = 'hogehoge_*';
$keys = array_map(function ($key) {
    return str_replace(config('database.redis.options.prefix'), '', $key);
}, Redis::keys($keyPattern));
if (!empty($keys)) {
    Redis::del($keys);
}

複数のコネクションを使っていてそれぞれprefixが違う場合は、
config('database.redis.options.prefix')の部分を適宜修正してください。

Laravel5.8からはデフォルトでprefixが指定されているので上記のprefixありで実行してください。

prefixを使っていない場合はこちらでもOK

Redis::del(Redis::keys('hogehoge_*'));

Laravel5.7はデフォルトだとprefixが指定されていないので、こちらでOK。


今回はリリース時の一部キャッシュのクリアでしたので、
php artisan tinkerで上記のコードを実行しました。

参考URL

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0