Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Verwenden von Redis für Warteschlangen für mehrere Laravel-Anwendungen auf einem einzelnen Server

Ich hatte das gleiche Problem, und ich brauchte Stunden, um die Lösung zu finden.

https://laravel.com/docs/5.6/queues#driver-prerequisites sagt:

Um die redis zu verwenden Queue-Treiber, sollten Sie eine Redisdatabase-Verbindung in Ihrer config/database.php konfigurieren Konfigurationsdatei.

Und dann sagt https://laravel.com/docs/5.6/redis#predis:

Zusätzlich zum standardmäßigen host , port , database , und password Serverkonfigurationsoptionen unterstützt Predis zusätzliche Verbindungsparameter, die für jeden Ihrer Redis-Server definiert werden können. Um diese zusätzlichen Konfigurationsoptionen zu nutzen, fügen Sie sie Ihrer Redisserver-Konfiguration in config/database.php hinzu Konfigurationsdatei.

Beim Lesen der Seite „Verbindungsparameter“ fand ich schließlich https://github.com/nrk/predis/wiki/Client-Options, wo steht, dass „prefix“ eine unterstützte Option ist.

Sie können also Ihre config/database.php bearbeiten Konfigurationsdatei zu haben:

'redis' => [
        'client' => 'predis',
        'cluster' => false,
        'options'=>[
            'prefix' => env('REDIS_PREFIX', 'YOUR_PREFIX_HERE')
        ],
        'default' => [
            'host'     => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port'     => env('REDIS_PORT', 6379),
            'database' => 0,
        ],
    ],

Ich bin mir nicht sicher, ob Sie dann Redis oder Supervisord neu starten müssen.