Redis auf dem Space-Server – Datenbank-Turbo für deine Projekte
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 .config/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
Im WordPress Backend klickst du unter Plugins und auf "Installieren". In der Suche findest du über den Begriff "Redis Object Cache" auf der ersten Position das richtige Plugin. Dieses musst du installieren. Nach der Installation 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.
TYPO3
Erstelle AdditionalConfiguration.php im Ordner typo3conf und füge Folgendes 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!
Kommentar hinzufügen