Laravel-删除所有包含特定字符串的缓存/ Redis键

是否可以使用Laravel擦除Redis中与特定字符串匹配的所有键?例如,如果我想忘记包含单词product的键,它将忘记以下键:

laravel:896235872385237588327582370375acaca235325:产品列表laravel:896235872385237588327582370375acaca235325:产品类别

我会在redis服务器上运行它,但是我想知道是否可以通过Laravel直接运行更好的东西:

redis-cli keys "*" | grep "products" | xargs redis-cli DEL

回答:

为什么不:

public function forget($key_name)

{

$redis = Cache::getRedis();

$keys = $redis->keys("*$key_name*");

$count = 0;

foreach ($keys as $key) {

$redis->del($key);

$count++;

}

return $count;

}

对于生产环境,应使用SCAN光标[MATCH模式] [COUNT计数]代替“键”

http://redis.io/commands/scan

因为您不想在Redis中有成千上万个键的情况下耗尽内存,也不想通过使用“键”来阻止整个Redis实例。

以上是 Laravel-删除所有包含特定字符串的缓存/ Redis键 的全部内容, 来源链接: utcz.com/qa/430092.html

回到顶部