Как в Symfony Component Cache проверить запущен ли Redis?

В Symfony Component Cache, для проверки того, запущен ли Redis, можно воспользоваться функцией isConnected() из класса RedisAdapter.

Для начала, убедитесь, что у вас установлено расширение Redis для PHP. Если его нет, установите его с помощью команды pecl install redis и добавьте его в файл php.ini.

После этого, в вашем Symfony-приложении откройте файл, который использует компонент кэша (например, config/packages/cache.yaml), и убедитесь, что вы настроили его для использования Redis-адаптера:

framework:
    cache:
        pools:
            cache.redis:
                adapter: cache.adapter.redis
                arguments:
                    - '@Redis'

После этого вы можете использовать RedisAdapter в вашем контроллере или сервисе для проверки соединения с Redis:

use SymfonyComponentCacheAdapterRedisAdapter;

class MyController extends AbstractController
{
    public function checkRedisConnection()
    {
        $redis = $this->get('snc_redis.default'); // or '@Redis' if using Symfony 5

        $cache = new RedisAdapter($redis);
        
        if ($cache->isConnected()) {
            // Redis is running
            return new Response('Redis is running');
        } else {
            // Redis is not running
            return new Response('Redis is not running');
        }
    }
}

После выполнения этого кода, вы получите ответ "Redis is running", если Redis запущен, и "Redis is not running", если Redis не запущен.

Обратите внимание, что в примере я использовал snc_redis.default, предполагая, что у вас уже установлен пакет snc/redis-bundle. Если у вас другое имя для вашего Redis-сервиса, измените получение сервиса Redis соответственно.

Это основной подход к проверке запущенности Redis в Symfony Component Cache. Однако вы можете провести более сложные проверки, проверяя конкретные команды Redis, например, PING, чтобы проверить не только соединение, но и работоспособность самого Redis-сервера. Это может быть полезно, если вы хотите проверить не только запущен ли Redis, но и его состояние.