colinmollenhour/credis
A lightweight PHP Redis client focused on performance and reliability. Provides a simple API built on the native phpredis extension, with support for connections, pipelines, transactions, and cluster/sentinel use cases—ideal for Laravel and other PHP apps.
predis and phpredis, enabling hybrid or fallback usage without architectural disruption.Cache, Queue, Session drivers). Compatibility with Laravel’s configuration system remains intact.Cache::store('redis'), QUEUE_CONNECTION=redis).predis vs. phpredis remain applicable.predis/phpredis should still be explicitly managed.predis/phpredis for debugging.phpredis availability in your environment.'redis' => [
'client' => ColinMollenhour\Credis\Connection\PhpRedis::class, // or Predis
],
QUEUE_CONNECTION=redis in .env).composer require colinmollenhour/credis:^1.17.1
credis first.phpredis for performance-critical paths (e.g., queues).predis entirely if no longer needed.credis’s improved health checks (PR #194) align with your failover policies.$redis = new ColinMollenhour\Credis\Connection\PhpRedis(['host' => 'redis-master', 'replica' => 'redis-replica']);
$redis->ping(); // Ensure replica health checks pass during failover.
credis to the container if needed.Redis::connection()->replica() to test read operations during replica failures.credis, predis, and phpredis for updates..env and Laravel configs.INFO replicationREDIS_LOGGING=1 for verbose output.credis config if needed).Replica [X] marked as down).config/redis.php.credis to prioritize healthy replicas:
$redis = new ColinMollenhour\Credis\Connection\PhpRedis([
'host' => 'redis-master',
'replicas' => ['redis-replica-1', 'redis-replica-2'],
'replica_read_only' => true, // Route reads to replicas.
]);
file cache).credis auto-detects new masters).predis/phpredis usage.credis.# Example: Simulate replica failure in Docker.
docker-compose exec redis redis-cli SHUTDOWN save
php artisan test --filter=RedisReplicaFailoverTest
How can I help you explore Laravel packages today?