]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Cache/MemcacheCacheDriver.php
Add new Cache console command
[friendica.git] / src / Core / Cache / MemcacheCacheDriver.php
index 4ca5aa38db066c3ed35c2a0b5ac132eeb8f30620..9e5246f5b6a38b9e75d4ba0507f7eb28904038d2 100644 (file)
@@ -22,6 +22,11 @@ class MemcacheCacheDriver extends AbstractCacheDriver implements IMemoryCacheDri
         */
        private $memcache;
 
+       /**
+        * @param string $memcache_host
+        * @param int    $memcache_port
+        * @throws Exception
+        */
        public function __construct($memcache_host, $memcache_port)
        {
                if (!class_exists('Memcache', false)) {
@@ -35,6 +40,28 @@ class MemcacheCacheDriver extends AbstractCacheDriver implements IMemoryCacheDri
                }
        }
 
+       /**
+        * (@inheritdoc)
+        */
+       public function getAllKeys()
+       {
+               $list = [];
+               $allSlabs = $this->memcache->getExtendedStats('slabs');
+               foreach($allSlabs as $slabs) {
+                       foreach(array_keys($slabs) as $slabId) {
+                               $cachedump = $this->memcache->getExtendedStats('cachedump', (int)$slabId);
+                               foreach($cachedump as $keys => $arrVal) {
+                                       if (!is_array($arrVal)) {
+                                               continue;
+                                       }
+                                       $list = array_merge($list, array_keys($arrVal));
+                               }
+                       }
+               }
+
+               return $list;
+       }
+
        /**
         * (@inheritdoc)
         */