在Heroku上使用Laravel框架来使用Redis
关于在Heroku上发布Laravel应用程序并将Redis用作缓存服务器的方法。
前提的中文释义是指一个事情发生的必要条件或基本前提。
在Heroku上有几个Redis附加组件可用,但我们假设使用Heroku Redis1。
安装插件
首先启用Heroku Redis附加组件。
heroku addons:create heroku-redis:hobby-dev
启用插件后,应用程序将设置环境变量REDIS_URL。

出于安全考虑,几乎全部是模糊的,但是它符合 redis://USERNAME:PASSWORD@HOST:PORT 的格式。
将URL进行分解
在包含Redis的Laravel数据库设置中,因为URL无法直接使用,所以需要进行拆分。
'redis' => [
'cluster' => false,
'default' => [
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
由于根据标准,环境变量是以设置URL进行分解并设置到环境变量中的形式,因此我们将在database.php的<?php标记之后添加以下内容。
if (getenv('REDIS_URL')) {
$url = parse_url(getenv('REDIS_URL'));
putenv('REDIS_HOST='.$url['host']);
putenv('REDIS_PORT='.$url['port']);
putenv('REDIS_PASSWORD='.$url['pass']);
}
当将其添加并部署到Heroku上时,应该能够在Heroku上使用Redis。
其他附加组件可能也会采用类似的方法。例如,如果是Redis To Go附加组件,可能会引用环境变量REDISTOGO_URL。 ↩
由于GitHub上的Laravel仓库如此设定。 ↩