Browse Source

Always call flush() as getAllKeys() is broken

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Côme Chilliet 2 years ago
parent
commit
36d7c73e69
1 changed files with 2 additions and 21 deletions
  1. 2 21
      lib/private/Memcache/Memcached.php

+ 2 - 21
lib/private/Memcache/Memcached.php

@@ -134,27 +134,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;
 	}