Rumah  >  Soal Jawab  >  teks badan

Symfony Redis tidak boleh menyambung kepada hos yang ditakrifkan dalam fail env, yang lalai kepada localhost

Kami mempunyai persediaan Symfony baharu dengan Redis sebagai mekanisme caching. Kami mahu menyambung ke hos tertentu, bukan hos tempatan lalai. Dalam pengeluaran, ./bin/console debug:dotenv memberikan REDIS_HOST yang betul. Ini dikonfigurasikan dalam .env dan .env.local.php kami.

Ralat yang kami dapat ialah:

Sambungan ditolak: tcp:127.0.0.1/6379

Ini ialah konfigurasi kami:

services.yml

services:
    Redis:
        # you can also use \RedisArray, \RedisCluster or \Predis\Client classes
        class: \Predis\Client
        calls:
            - connect:
                  - '%env(REDIS_HOST)%'
                  - '%env(int:REDIS_PORT)%'
    Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler:
        arguments:
            - '@Redis'
            - prefix: sp_ss_
            - ttl: 1800

cache.yml

framework:
    cache:
        app: cache.adapter.redis
        default_redis_provider: 'Redis'
        pools:
            site.cache:
                adapter: cache.app

Dan fail .env kami:

APP_ENV=prod
APP_SECRET=****
MESSENGER_TRANSPORT_DSN=redis://redis.local:6379/messages
REDIS_HOST=redis.local
REDIS_PORT=6379
REDIS_URL=redis://redis.local:6379

P粉022501495P粉022501495219 hari yang lalu478

membalas semua(1)saya akan balas

  • P粉399090746

    P粉3990907462024-04-07 09:53:53

    Dokumentasi Symfony mengesyorkan menggunakan "panggilan -> sambung", tetapi hanya gunakannya jika anda mentakrifkan kelas anda sebagai "Redis". Apabila anda menggunakan 'PredisClient' anda perlu menggunakan tetapan berikut:

    "config/services.yaml"

        Redis:
            # you can also use \RedisArray, \RedisCluster or \Predis\Client classes
            class: \Predis\Client
            # See all parameters here: https://github.com/predis/predis/wiki/Connection-Parameters#list-of-connection-parameters
            arguments:
                - host: '%env(REDIS_HOST)%'
                - port: '%env(int:REDIS_PORT)%'
                # uncomment the following if your Redis server requires a password
                # - password: '%env(REDIS_PASSWORD)%'
    

    Saya juga menggunakan "PredisClient" dan selepas menukar kepada "argumen" sambungan berfungsi di sini.

    Untuk rujukan parameter lanjut, sila semak pautan ini (senarai parameter sambungan) .

    balas
    0
  • Batalbalas