配置 Laravel 7 以与 PhpRedis 一起使用
前言
按照 Laravel 的建议,在互联网上搜索并试图弄清楚如何正确安装和使用 PhpRedis 之后,我无法找到一个单一的事实来源或指南,这不会给我留下比答案更多的问题。
我希望在社区的帮助下,在这里创建并不断改进该指南。
本指南的目标
为什么不直接使用 Predis?
根据 Laravel 7 文档,Predis 似乎已被放弃,在 Laravel 的 future 版本中,它可能不再受支持。此外,PhpRedis 的性能优于 Predis。
PhpRedis vs Predis: Comparison on real production data
引用
How to Install PhpRedis for Laravel on Ubuntu
PhpRedis in Laravel - Redis Series Episode 2
Installing PHP REDIS PHP7 Branch On Fresh Install Homestead PHP7
Laravel 7 Redis Docs
在 Homestead 上全新安装的 Laravel 7 上安装/配置 PhpRedis
本指南假设您在 Homestead 开发环境中使用 Laravel 7。
安装 PHPRedis 包。
1. SSH 进入你的家园。
$ vagrant ssh
2、下载PhpRedis包。$ wget https://github.com/phpredis/phpredis/archive/master.zip
注意:此链接可能已被弃用。如果是,请检查最新版本https://github.com/phpredis/phpredis/releases
下载完成后,您应该使用命令 ls
看到一个名为 master.zip 的文件。 .3.从master.zip中解压phpredis-master文件夹,然后删除master.zip。将提取的文件夹移动到您的/etc/目录。然后导航到提取的 phpredis-master 文件夹。
$ unzip master.zip
$ rm master.zip
$ sudo mv phpredis-master/ /etc/
$ cd /etc/phpredis-master/
4.为PhpRedis PHP扩展准备构建环境。$ phpize
$ ./configure
$ make && make install
如果您收到错误 recipe for target 'install-modules' failed
,使用须藤$ sudo make instsall
5. 使用 Vim 或您喜欢的编辑器更新 redis.ini 文件。确保将 7.4 替换为您正在使用的 PHP 版本。您可以通过运行
php -v
来检查.就我而言,它返回了 PHP 7.4.4。然后我跑了 ls /etc/php/
列出我的 PHP 文件夹并找到/etc/php/7.4/目录。$ sudo vim /etc/php/7.4/fpm/conf.d/redis.ini
您现在应该在 Vim 编辑器中打开了该文件。复制下面的行,然后在 Vim 中按 i 开始插入。然后通过右键单击并选择粘贴或按 Shift+Ins 进行粘贴。extension=/etc/phpredis-master/modules/redis.so
添加该行后,按 Esc 退出编辑模式,然后按 :wq 和 Enter 保存并退出。
6.重启服务
确保您位于/etc/phpredis-master/目录中
同样,将 7.4 替换为您正在使用的 PHP 版本。
$ sudo service php7.4-fpm restart
$ sudo service nginx restart
7. 确保一切正常。$ sudo nginx -t
如果成功,这应该输出以下内容。nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
配置 Laravel 7 以使用 PhpRedis。
您现在应该在您的服务器上安装了 PhpRedis。我们现在将配置 Laravel 以开始使用 PhpRedis。
1. 将Redis别名更改为RedisManager。
打开 config/app.php 然后在 aliases 数组中将 Redis 更改为 RedisManager
'aliases' => [
...
'RedisManager' => Illuminate\Support\Facades\Redis::class,
...
]
您可以将 Redis 重命名为 RedisManager 以外的名称,但为了保持一致性,我只是按照 Laravel 文档中的建议进行操作。测试Redis是否正常工作
将以下内容添加到您的 web.php 路由文件,然后导航到应用程序中的路由。
Route::get('/redis', function () {
$app = RedisManager::connection();
$app->set('key', 'Testing PhpRedis');
echo $app->get('key');
});
导航到 yoursite.local/redis 时,您应该会看到消息“正在测试 PhpRedis”。在您的项目中使用 Redis
安装 PhpRedis 并更新 Laravel 配置后,您现在应该可以开始在项目中使用 Redis。
在您的 Controller 中使用 Redis
// ExampleController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use RedisManager;
class ExampleController extends Controller
{
public function index()
{
$visits = RedisManager::incr('visits');
return $visits;
}
}
常问问题
为什么我们必须将 Redis 别名重命名为 RedisManager?
再说一遍,既然 Laravel 7 默认使用 PhpRedis,为什么我们要把 Redis 别名重命名为 RedisManager?
将 Redis 别名重命名为 RedisManager 将如何影响我的应用程序以及我如何使用它?
Laravel 7 说 PhpRedis 是默认的,那我为什么要这样做呢?
我已经成功地让 PhpRedis 在本地工作,但是当我在 Vapor 上部署时,它不起作用。我该怎么办?
如果我不使用 Homestead 怎么办?
去做
$ wget https://github.com/phpredis/phpredis/archive/master.zip
下载 PhpRedis 包是安装软件包的最佳方式,或者如果有更好的选择,例如可能通过 PECL 安装。 最佳答案
您可以使用以下命令简化安装 PHPRedis 的部分:
vagrant ssh
sudo apt-get install php-redis
sudo apt-get install php8.0-redis
上面的示例将首先安装默认模块 PHPRedis,然后安装 PHPRedis 扩展的特定 PHP 版本。所以这个例子是针对 PHP 8.0 的,如果你需要一个 PHP 7.3 版本,你应该改变 php8.0-redis
进入 php7.3-redis
.
关于php - 为 Laravel 7 安装和配置 PhpRedis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62475112/