MacOS
Programmation PHP/Redis
Utilisation en PHP.
$redis = new \Redis();
$redis->connect('localhost', 6379);
$redis->set('nom du test', 'valeur du test');
echo $redis->get('nom du test');
predis.
Cette bibliothèque permet d'utiliser Redis en clustering, avec des masters et slaves.
Dans Symfony.
Dans le framework PHP Symfony.
Session.
SncRedisBundle.
Avant Symfony 4.1, il fallait passer par un bundle tel que SncRedisBundle.
 composer require snc/redis-bundle predis/predis
Pour que les sessions soient stockées dans Redis au lieu de var/cache/, remplacer dans framework.yaml, codice_1 null par snc_redis.session.handler. Cela permet par exemple de les partager entre plusieurs conteneurs.
RedisSessionHandler.
Depuis Symfony 4.1, le composant "HttpFoundation" contient une classe "RedisSessionHandler".
Installation dans services.yaml :
 redis:
 class: Redis
 calls:
 - connect:
 - '%env(REDIS_HOST)%'
 - '%env(int:REDIS_PORT)%'
 Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler:
 arguments:
 - '@redis'
Puis dans config/packages/framework.yaml :
framework:
 session:
 handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler
Ensuite le service "session" utilisera automatiquement Redis.
Doctrine.
Pour mettre le cache Doctrine de requête et de résultat dans Redis, on peut utiliser SncRedisBundle.
Pour vider les caches :
 bin/console cache:pool:clear doctrine.query_cache_pool doctrine.result_cache_pool doctrine.system_cache_pool
Cache chainé.
L'inconvénient de Redis ainsi configuré est que s'il tombe en panne, les applications qui l'utilisent crashent aussi (erreur de connexion à Redis dès l'instanciation des services).
Pour se prémunir de cela, il est recommandé d'inclure Redis dans un cache chainé, qui permet de basculer automatiquement sur des caches de secours sans bloquer l'application. Exemple :
framework:
 cache:
 prefix_seed: my_app_
 app: cache.chain
 pools:
 cache.chain:
 adapter: cache.adapter.psr6
 provider: chain_adapter_provider
 cache.redis:
 adapter: cache.adapter.redis
 cache.apcu:
 adapter: cache.adapter.apcu
 cache.filesystem:
 adapter: cache.adapter.filesystem
services:
 chain_adapter_provider:
 class: Symfony\Component\Cache\Adapter\ChainAdapter
 arguments:
 - ['@cache.redis', '@cache.apcu', '@cache.filesystem']
 - '%env(int:CACHE_DEFAULT_LIFETIME)%'

Pathologie/Pathologie générale/Pathologie tumorale/Notions de base