laravel 5.8
php 7.2.10
redis 5.0.2
配置
# .env 配置
REDIS_CLIENT=phpredis
REDIS_CLUSTER=false
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=
REDIS_PORT=6379
REDIS_PERSISTENT=true
# config/app.php 配置下的 Redis 已经改了别名
'LRedis' => Illuminate\Support\Facades\Redis::class
# redis 客户端连接测试是正常的,如下所示:
127.0.0.1:6379> set miit makeit.vip OK
127.0.0.1:6379> get miit "makeit.vip"
127.0.0.1:6379> del miit (integer) 1
调用
# controller 内的调用如下
use Illuminate\Support\Facades\Redis;
class testController extends Controller {
public function index() {
Redis::set('test', 1);
}
}
# 上述操作抛出的异常如下
exception: "Symfony\Component\Debug\Exception\FatalThrowableError"
file: ".\vendor\laravel\framework\src\Illuminate\Redis\Connectors\PhpRedisConnector.php"
`line: 66
message: "Class 'Redis' not found"
5.8 版本的文档中未说明需要修改Redis别名配置,找的一些资料中看到的,如果不改这个别名,抛出的异常是 Call to undefined method Redis::connect()
PHP的Redis扩展在本地新建一个PHP文件测试过,测试OK,不知是何缘故导致Laravel无法找到 PHP的Redis扩展类库
# 本地测试代码
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->set('makeit', 'Hello World');
$redis->get('makeit');
# 可以正常存储获取的
$ .\redis-cli.exe
127.0.0.1:6379> keys *
1) "makeit"
127.0.0.1:6379> get makeit
"Hello World"
麻烦大家帮忙看看,谢谢 ~