Ben*_*Ben 5 queue redis laravel
我有一个生产laravel应用程序和在同一台服务器上运行的登台应用程序.我正在运行redis,我将其用作我的队列驱动程序.它们显然连接到不同的数据库.问题是,从登台应用程序推送到红色队列的作业是否会干扰生产数据库,反之亦然.
Rya*_*yan 11
我有同样的问题,我花了几个小时才找到解决方案.
https://laravel.com/docs/5.6/queues#driver-prerequisites说:
要使用
redis队列驱动程序,应在config/database.php配置文件中配置Redis数据库连接.
然后https://laravel.com/docs/5.6/redis#predis说:
除了默认
host,port,database,和password服务器配置选项,Predis支持额外的连接参数可能为每个Redis的服务器的定义.要使用这些附加配置选项,请将它们添加到config/database.php配置文件中的Redis服务器配置中.
阅读"连接参数"页面后,我最终找到了https://github.com/nrk/predis/wiki/Client-Options,其中说"'prefix'是受支持的选项.
因此,您可以编辑config/database.php配置文件以具有:
'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,
],
],
Run Code Online (Sandbox Code Playgroud)
我不确定你是否需要重新启动Redis或Supervisord.
从Laravel 5.5.22 开始,缓存前缀使用APP_NAME环境变量。如果这足够了,您可以依赖它,或者您可以使用CACHE_PREFIX默认情况下未设置的环境变量来配置前缀。
如果你使用 Laravel Horizon 来管理你的队列,你可以简单地覆盖HORIZON_PREFIX环境变量,让 Horizon 区分你并排运行的应用程序。
您可以设置Laravel用于Redis缓存的前缀.默认情况下这是laravel,因此所有键都存储为,laravel:keyname并且Laravel负责保存/获取时添加/删除此前缀的逻辑.
您可以在中设置前缀config/cache.php.您可以将主要的一个保留为laravel,并将您的暂存应用前缀设置为stage或等.这意味着多个Laravel应用程序可以使用相同的Redis实例.
| 归档时间: |
|
| 查看次数: |
3306 次 |
| 最近记录: |