diff --git a/.vscode/settings.json b/.vscode/settings.json
index a33a6a4fd9091be04ed48272abcfd86bc4cf5d75..56c2a45c9359af00b328761b67c2b5415d41c76e 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -6,7 +6,6 @@
     "docker-linter.php.machine": "",
     "intelephense.stubs": [
         "apache",
-        "redis",
         "bcmath",
         "bz2",
         "calendar",
diff --git a/build/fpm/Dockerfile b/build/fpm/Dockerfile
index 5e3d296ddaa91247bf3b8748d91665b916d2ad22..d6ac8d31f32c96a4946a16845149cddd1a17537a 100644
--- a/build/fpm/Dockerfile
+++ b/build/fpm/Dockerfile
@@ -21,8 +21,7 @@ RUN apt update && apt install -y \
     libzip-dev \
     libpng-dev && \
     docker-php-ext-install zip gd pcntl pdo_mysql && \
-    yes '' | pecl install redis-5.3.7 xdebug-3.1.4 && \
-    docker-php-ext-enable redis && \
+    yes '' | pecl install xdebug-3.1.4 && \
     docker-php-ext-enable --ini-name=xdebug.ini xdebug
 
 # Add working dir for the code base
diff --git a/metager/.env.example b/metager/.env.example
index d8f24bea1886cb387bf9b9ac80124783a27f3762..28cf31e5cd373380123b160de200fcb568a86b86 100644
--- a/metager/.env.example
+++ b/metager/.env.example
@@ -12,6 +12,7 @@ DB_DATABASE=metager
 DB_USERNAME=metager
 DB_PASSWORD="metager"
 
+REDIS_CLIENT=predis
 REDIS_RESULT_CONNECTION=default
 REDIS_RESULT_CACHE_DURATION=60
 
diff --git a/metager/app/PrometheusExporter.php b/metager/app/PrometheusExporter.php
index f5e769f9c7e269db481c69ce41da983f9dbe613d..23e4be47d9461801a2269365413e9774056ea723 100644
--- a/metager/app/PrometheusExporter.php
+++ b/metager/app/PrometheusExporter.php
@@ -2,47 +2,50 @@
 
 namespace App;
 
+use Prometheus\CollectorRegistry;
+use Prometheus\Storage\InMemory;
+
 class PrometheusExporter
 {
 
     public static function CaptchaShown()
     {
-        $registry = \Prometheus\CollectorRegistry::getDefault();
+        $registry = new CollectorRegistry(new InMemory());
         $counter = $registry->getOrRegisterCounter('metager', 'captcha_shown', 'counts how often the captcha was shown', []);
         $counter->inc();
     }
 
     public static function CaptchaCorrect()
     {
-        $registry = \Prometheus\CollectorRegistry::getDefault();
+        $registry = new CollectorRegistry(new InMemory());
         $counter = $registry->getOrRegisterCounter('metager', 'captcha_correct', 'counts how often the captcha was solved correctly', []);
         $counter->inc();
     }
 
     public static function CaptchaAnswered()
     {
-        $registry = \Prometheus\CollectorRegistry::getDefault();
+        $registry = new CollectorRegistry(new InMemory());
         $counter = $registry->getOrRegisterCounter('metager', 'captcha_answered', 'counts how often the captcha was answered', []);
         $counter->inc();
     }
 
     public static function HumanVerificationSuccessfull()
     {
-        $registry = \Prometheus\CollectorRegistry::getDefault();
+        $registry = new CollectorRegistry(new InMemory());
         $counter = $registry->getOrRegisterCounter('metager', 'humanverification_success', 'counts how often humanverification middleware was successfull', []);
         $counter->inc();
     }
 
     public static function HumanVerificationError()
     {
-        $registry = \Prometheus\CollectorRegistry::getDefault();
+        $registry = new CollectorRegistry(new InMemory());
         $counter = $registry->getOrRegisterCounter('metager', 'humanverification_error', 'counts how often humanverification middleware had an error', []);
         $counter->inc();
     }
 
     public static function Duration($duration, $type)
     {
-        $registry = \Prometheus\CollectorRegistry::getDefault();
+        $registry = new CollectorRegistry(new InMemory());
         $histogram = $registry->getOrRegisterHistogram('metager', 'request_time', 'Loading Times for different cases', ['type'], [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 15.0, 20.0, 30.0, 35.0]);
         $histogram->observe($duration, [$type]);
     }
@@ -53,7 +56,7 @@ class PrometheusExporter
      */
     public static function PreferredLanguage($language, $type)
     {
-        $registry = \Prometheus\CollectorRegistry::getDefault();
+        $registry = new CollectorRegistry(new InMemory());
         $counter = $registry->getOrRegisterCounter("metager", $language, 'counts preferred language usages', ['type']);
         $counter->inc($type);
     }
diff --git a/metager/app/Providers/AppServiceProvider.php b/metager/app/Providers/AppServiceProvider.php
index 9f9881d1e4ee6bc045f32691daedff19fd4aead1..181ef7bbb0066200a62593aebfd5e63f680feb05 100644
--- a/metager/app/Providers/AppServiceProvider.php
+++ b/metager/app/Providers/AppServiceProvider.php
@@ -31,25 +31,14 @@ class AppServiceProvider extends ServiceProvider
         if (stripos($host, "metager.org") !== false) {
             \App::setLocale('en');
             LaravelLocalization::setLocale('en');
-        }else if (stripos($host, "metager.es") !== false) {
+        } else if (stripos($host, "metager.es") !== false) {
             \App::setLocale('es');
             LaravelLocalization::setLocale('es');
-        }else{
+        } else {
             \App::setLocale('de');
             LaravelLocalization::setLocale();
         }
 
-        \Prometheus\Storage\Redis::setDefaultOptions(
-            [
-                'host' => config("database.redis.default.host"),
-                'port' => intval(config("database.redis.default.port")),
-                'password' => config("database.redis.default.password"),
-                'timeout' => 0.1, // in seconds
-                'read_timeout' => '10', // in seconds
-                'persistent_connections' => false
-            ]
-        );
-
         Queue::before(function (JobProcessing $event) {
         });
         Queue::after(function (JobProcessed $event) {
diff --git a/metager/composer.json b/metager/composer.json
index d78458cacbabbab5113aa9173cf3e6342066b66a..e9cd70d81dba1b41e3729fa9d77339f1aeec6884 100644
--- a/metager/composer.json
+++ b/metager/composer.json
@@ -18,6 +18,7 @@
         "laravel/tinker": "^2.5",
         "mcamara/laravel-localization": "1.6.*",
         "mews/captcha": "^3.2.6",
+        "predis/predis": "^1.1",
         "promphp/prometheus_client_php": "^2.2",
         "symfony/dom-crawler": "^5.2"
     },
@@ -68,4 +69,4 @@
     },
     "minimum-stability": "dev",
     "prefer-stable": true
-}
\ No newline at end of file
+}
diff --git a/metager/composer.lock b/metager/composer.lock
index 1ca4ed9df64f642e3efdcbc6a357388a2be166ff..2db9569d2b0aefa36c2ced344838f5544b6116a9 100644
--- a/metager/composer.lock
+++ b/metager/composer.lock
@@ -1568,16 +1568,16 @@
         },
         {
             "name": "league/commonmark",
-            "version": "2.3.0",
+            "version": "2.3.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/thephpleague/commonmark.git",
-                "reference": "32a49eb2b38fe5e5c417ab748a45d0beaab97955"
+                "reference": "cb36fee279f7fca01d5d9399ddd1b37e48e2eca1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/32a49eb2b38fe5e5c417ab748a45d0beaab97955",
-                "reference": "32a49eb2b38fe5e5c417ab748a45d0beaab97955",
+                "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/cb36fee279f7fca01d5d9399ddd1b37e48e2eca1",
+                "reference": "cb36fee279f7fca01d5d9399ddd1b37e48e2eca1",
                 "shasum": ""
             },
             "require": {
@@ -1670,7 +1670,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-04-07T22:37:05+00:00"
+            "time": "2022-05-14T15:37:39+00:00"
         },
         {
             "name": "league/config",