如何在Laravel 5.4 中检查 Redis 连接的可用性。我尝试了下面的代码,但在 ping 行时出现异常。如果 Redis 未连接而不是做其他事情以避免异常,我该怎么办?
无法建立连接,因为目标机器主动拒绝它。[tcp://127.0.0.1:6379]
use Redis;
class SocketController extends Controller
{
public function sendMessage(){
$redis = Redis::connection();
if($redis->ping()){
print_r("expression");
}
else{
print_r("expression2");
}
}
}
Run Code Online (Sandbox Code Playgroud)
也试过这个:
$redis = Redis::connection();
try{
$redis->ping();
} catch (Exception $e){
$e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
但无法捕获异常
Sau*_*try 10
如果您使用的是predis,那么它会抛出Predis\Connection\ConnectionException
从服务器读取行时出错。[tcp://127.0.0.1:6379] <--redis未连接时
所以抓住那个异常,你会得到你的 redis 是否已连接。
use Illuminate\Support\Facades\Redis;
public function redis_test(Request $request){
try{
$redis=Redis::connect('127.0.0.1',3306);
return response('redis working');
}catch(\Predis\Connection\ConnectionException $e){
return response('error connection redis');
}
Run Code Online (Sandbox Code Playgroud)
小智 7
<?php
namespace App\Helpers;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redis;
class ConnectionChecker
{
public static function isDatabaseReady($connection = null)
{
$isReady = true;
try {
DB::connection($connection)->getPdo();
} catch (\Exception $e) {
$isReady = false;
}
return $isReady;
}
public static function isRedisReady($connection = null)
{
$isReady = true;
try {
$redis = Redis::connection($connection);
$redis->connect();
$redis->disconnect();
} catch (\Exception $e) {
$isReady = false;
}
return $isReady;
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个辅助类来检查 redis 和 db 连接
确保redis已安装
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install redis-server
Run Code Online (Sandbox Code Playgroud)
要测试您的服务是否正常运行,请使用命令行客户端连接到 Redis 服务器:
redis-cli
Run Code Online (Sandbox Code Playgroud)
在随后的提示中,通过键入以下内容来测试连接:
ping
Run Code Online (Sandbox Code Playgroud)
你应该看到:
输出
PONG
Run Code Online (Sandbox Code Playgroud)
安装 Laravel 依赖项
composer require predis/predis
Run Code Online (Sandbox Code Playgroud)
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04
https://askubuntu.com/questions/868848/how-to-install-redis-on-ubuntu-16-04
| 归档时间: |
|
| 查看次数: |
15861 次 |
| 最近记录: |