Redis auf dem Space-Server – Datenbank-Turbo für deine Projekte

|
Datenbank-Turbo für deine Projekte
Für einen Webshop ist gute Performance ein echter Wettbewerbsvorteil. Damit du deine Ladezeiten weiter minimieren kannst, unterstützt der Space-Server ab sofort Redis. Wozu du die Datenbank verwenden kannst und wie du sie einrichtest, liest du hier.

Was ist Redis?

Redis (kurz für Remote Dictionary Server) ist In-Memory-Datenbank und Key-Value-Store in einem. Das heißt: Anstatt auf der Festplatte werden deine Daten im Arbeitsspeicher abgelegt. Jeder Eintrag erhält seinen eigenen Schlüssel, über den er direkt abgerufen wird. Das sorgt für sehr kurze Zugriffszeiten

Wozu brauche ich Redis?

Generell gilt: Redis macht deine Projekte schneller, wenn Daten schnell geschrieben und abgefragt werden. Dank der überragenden Performance lässt sich Redis ideal als Cache verwenden. Auch als Session-Storage für Shopsysteme ist die Datenbank beliebt. 

Wie richte ich Redis auf dem Space-Server ein?

Redis einzurichten ist einfach. Je nach CMS oder Shopsystem musst du jedoch einige Dinge beachten. Ich erkläre dir Schritt für Schritt, wie es geht.

Allgemeine Einstellungen

Lege zunächst im mStudio, der Verwaltungsumgebung deines Space-Servers, eine Redis Datenbank an. Anschließend findest du in den Details unter Verbindungsinformationen sowohl Host als auch Port. Beide benötigst du für die Konfiguration deines Systems.

php.ini anpassen

Die Datei liegt in deinem Projekt unter /etc/php/php.ini. Füge den folgenden Code ein:

extension=redis.so
session.save_handler = redis
session.save_path = "tcp://HOST:PORT?database=15"

Ändere nun du die Variablen HOST und PORT. Dafür verwendest du die Angaben aus den Verbindungsinformationen.

Jede Redis Datenbank hat standardmäßig 16 Session Datenbanken, die von 0 – 15 angesprochen werden können.

Shopware 6

config/ services.yaml einfügen oder erstellen

Die Konfiguration für Redis trägst du in deiner Shopware 6 Installation in der services.yaml ein. Sie liegt im Verzeichnis /config. Falls dort noch keine Datei vorhanden ist, legst du diese einfach an. Folgende Zeilen fügst du am Ende der Datei ein:

parameters:
    app.redis.cache.host: "%env(REDIS_CACHE_HOST)%"
    app.redis.cache.port: "%env(int:REDIS_CACHE_PORT)%"
    app.redis.cache.database: "%env(int:REDIS_CACHE_DATABASE)%"
services:
    Redis:
        class: Redis
        calls:
            - method: connect
              arguments:
                  - "%env(REDIS_SESSION_HOST)%"
                  - "%env(int:REDIS_SESSION_PORT)%"
            - method: select
              arguments:
                 - "%env(int:REDIS_SESSION_DATABASE)%"
    Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler:
        arguments:
            - "@Redis"

Erstelle nun im Ordner config/packages die Datei framework.yaml. Das geht per SSH oder FTP. In die Datei fügst du Folgendes ein:

framework:
    cache:
        app: cache.adapter.redis
        system: cache.adapter.redis
        default_redis_provider: "redis://%app.redis.cache.host%:%app.redis.cache.port%/%app.redis.cache.database%"
    session:
        handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler

Füge zuletzt Folgendes am Ende der .env ein:

REDIS_CACHE_HOST="HOST"
REDIS_CACHE_PORT="PORT"
REDIS_CACHE_DATABASE="1"

REDIS_SESSION_HOST="HOST"
REDIS_SESSION_PORT="PORT"
REDIS_SESSION_DATABASE="0"

Shopware 5

Füge im Shopware Verzeichnis in config.php Folgendes ein:

// Sessions für Backend und Frontend im Redis in der DB2
'session' => [
	'save_handler' => 'redis',
	'save_path' => 'tcp://HOST:PORT/2',
],

'backendsession' => [
	'save_handler' => 'redis',
	'save_path' => 'tcp://HOST:PORT/2',
],

// Models Cache im Redis in der DB3
'model' => [
	'redisHost' => 'tcp://HOST',
	'redisPort' => 'PORT',
	'redisDbIndex' => '3',
	'cacheProvider' => 'redis',

],

// Shopware Backend Cache im Redis in der DB3
'cache' => [
	'backend' => 'redis',
	'backendOptions' => [
		'servers' => [
			[
				'host' => 'tcp://HOST',
				'port' => 'PORT',
				'dbindex' => '3',
			],
		],
	],
],

Joomla 4

In der Joomla Administration hinterlegst du unter System -> Konfiguration -> System bei "Sitzung (Session)" diese Konfiguration:

Sitzungsspeicher: Redis 
Persistentes Redis: Ja 
Redis-Server Host/Socket: HOST eintragen
Redis-Port: PORT eintragen
Redis-Server-Authentifizierung: so belassen
Redis-Datenbank: Datenbank eintragen

Bei Redis-Datenbank gewünschte freie Datenbank zwischen 0 und 15 wählen.

Speichern

WordPress

Wir empfehlen das Plugin Redis Object Cache. Du kannst es im WordPress Backend unter Plugins installieren. Anschließend fügst du der wp-config.php folgenden Eintrag hinzu:

define('WP_REDIS_HOST', 'HOST');
define('WP_REDIS_PORT', 'PORT');
define('WP_REDIS_DATABASE', '0');
define('WP_REDIS_SCHEME', 'tcp');

Als Wert für WP_REDIS_DATABASE wählst du eine freie Datenbank zwischen 0 und 15.

Alle Operationen kannst du auch über die WP-CLI durchführen. Installiere dafür zunächst das Plugin:

wp plugin install redis-cache --activate

Dann setzt du die benötigten Konfigurationseinträge:

wp config set --type=constant WP_REDIS_PATH HOST
wp config set --type=constant WP_REDIS_PORT PORT
wp config set --type=constant WP_REDIS_DATABASE 0
wp config set --type=constant WP_REDIS_SCHEME unix

TYPO3

Für alle Versionen bis TYPO3 11.5 erstellst du eine AdditionalConfiguration.php im Ordner typo3conf. Ab TYPO3 Version 12.4 erstellst du eine additional.php in den Ordnern typo3conf/system (für Symlink Installationen) oder config/system (für Composer Installationen). Füge das Folgende jeweils ein. Sollte die Datei bereits existieren, kannst du <?php weglassen.

<?php
 
$redisHost = 'HOST';
$redisPort = PORT;
$redisCaches = [
	'pages' => [
     	'defaultLifetime' => 86400*7,
     	'compression' => true,
	],
	'pagesection' => [
     	'defaultLifetime' => 86400*7,
	],
	'hash' => [],
	'rootline' => [],
];
$redisDatabase = 0;
foreach ($redisCaches as $name => $values) {
	$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'][$name]['backend']
  	= \TYPO3\CMS\Core\Cache\Backend\RedisBackend::class;
    $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'][$name]['options'] = [
    	'database' => $redisDatabase++,
    	'hostname' => $redisHost,
    	'port' => $redisPort
	];
	if (isset($values['defaultLifetime'])) {
       	$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'][$name]['options']['defaultLifetime']
           	= $values['lifetime'];
	}
	if (isset($values['compression'])) {
           $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'][$name]['options']['compression']
           	= $values['compression'];
	}
}

Tipp!

Bock auf mehr Performance? Teste Redis doch einfach. Buche dafür den Space-Server für 10 Tage kostenlos und Abfahrt!

Ähnliche Artikel:

Hosting

“Meine Software muss schneller sein als ich” - Thorsten Heß über den Agentur-Alltag mit dem Space-Server

“Meine Software muss schneller sein als ich”, sagt Thorsten Heß. Wie schneidet da das mStudio ab? Das verrät der Agenturinhaber im Interview.

Hosting

Neu im mStudio: Plane Backups und check die Auslastung deines Servers

Ab sofort kannst du im mStudio deine Backups planen. Außerdem hast du jetzt dank der neuen Übersicht die Auslastung deiner Projekte immer im Blick.

Hosting

Performance-Boost (5): Mehr Chrome DevTools − Performance Insights & JavaScript Profiler

Chrome stellt euch mächtige Tools zur Performance-Analyse zur Verfügung. Hannes zeigt, was mit Performance Insights & JavaScript Profiler möglich ist.

Kommentar hinzufügen