/
Pack Hosting Panel

Redis

Redis instanties instellen met Hipex Deploy


Introductie

Veel applicaties gebruiken Redis voor hun caching behoeften. Hierdoor adviseren wij om de Redis configuratie als code te behandelen en deze op te nemen als onderdeel van de codebase. In dit artikel leggen we je uit hoe je dit instelt.

Configuratie

Het instellen van een Redis instantie is net zo makkelijk als het toevoegen van een service aan je configuratie:

$redis = new RedisService('cache', 7000);
$redis->setMaxMemory('4096M');
$configuration->addPlatformService($redis);

Wanneer je applicatie nu wordt uitgerold, zorgt het er automatisch voor dat de Redis instantie op poort 7000 met 4GB geheugen wordt gedraaid.

Net zoals een andere taak of service kan je Redis voor een specifieke stage of server role configureren.

$redis = new RedisService('cache', 7000);
$redis->setStage($stage);
$redis->setServerRoles([ServerRole::APPLICATION]);

Master / Slave setup

Met een cluster setup draai je gewoonlijk een Redis-instantie als master op de load balancer en zal elke applicatie server een eigen redis instantie krijgen.

$redisMaster = new RedisService('cache', 7000);
$redisMaster->setServerRoles([ServerRole::LOAD_BALANCER]);

$redisSlave = new RedisService('cache', 7000);
$redisSlave->setServerRoles([ServerRole::APPLICATION]);
$redisSlave->setMasterServer('production123.hipex.io');

De Redis instanties op de servers met role ServerRole::APPLICATION zullen geconfigureerd worden als slaves van de redis instantie op production123.hipex.io.

Persistentie

Als je Redis voor sessies gebruikt, wat wij overigens adviseren, dan is het van tijd tot tijd aan te raden om sessies op een schijf op te slaan. Dit kan eenvoudig worden geconfigureerd middels setSnapshotSaveFrequency(frequencyInSeconds).

$redis = new RedisService('cache', 7000);
$redis->setSnapshotSaveFrequency(60);

Dit zal ervoor zorgen dat de Redis database iedere 60 seconde wordt opgeslagen op de schijf.