Symfony Redis tidak boleh menyambung kepada hos yang ditakrifkan dalam fail env, yang lalai kepada localhost
P粉022501495
P粉022501495 2024-04-06 10:53:02
0
1
581

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粉022501495
P粉022501495

membalas semua(1)
P粉399090746

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) .

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan