mirror of
https://github.com/nextcloud/server.git
synced 2026-03-21 10:00:33 -04:00
Always call flush() as getAllKeys() is broken
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
parent
92fcdc3509
commit
3f3908b72a
1 changed files with 2 additions and 21 deletions
|
|
@ -133,27 +133,8 @@ class Memcached extends Cache implements IMemcache {
|
|||
}
|
||||
|
||||
public function clear($prefix = '') {
|
||||
$prefix = $this->getNameSpace() . $prefix;
|
||||
$allKeys = self::$cache->getAllKeys();
|
||||
if ($allKeys === false) {
|
||||
// newer Memcached doesn't like getAllKeys(), flush everything
|
||||
self::$cache->flush();
|
||||
return true;
|
||||
}
|
||||
$keys = [];
|
||||
$prefixLength = strlen($prefix);
|
||||
foreach ($allKeys as $key) {
|
||||
if (substr($key, 0, $prefixLength) === $prefix) {
|
||||
$keys[] = $key;
|
||||
}
|
||||
}
|
||||
if (method_exists(self::$cache, 'deleteMulti')) {
|
||||
self::$cache->deleteMulti($keys);
|
||||
} else {
|
||||
foreach ($keys as $key) {
|
||||
self::$cache->delete($key);
|
||||
}
|
||||
}
|
||||
// Newer Memcached doesn't like getAllKeys(), flush everything
|
||||
self::$cache->flush();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue