Laravel 使用 phpredis 扩展之后,出现指定 database 无效的情况。
多次操作数据的时候可能会操作到其他的 database 上面。
最后才发现是框架的问题。
版本号
Laravel Framework 5.7.28
这个目录下面
vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php
/**
* Create the Redis client instance.
*
* @param array $config
* @return \Redis
*/
protected function createClient(array $config)
{
return tap(new Redis, function ($client) use ($config) {
$this->establishConnection($client, $config);
if (! empty($config['password'])) {
$client->auth($config['password']);
}
// 如果$config['database'] = 0 的话这里返回 false 尴尬所以就没有调用select方法。导致随意选择数据库。
if (! empty($config['database'])) {
$client->select($config['database']);
}
if (! empty($config['prefix'])) {
$client->setOption(Redis::OPT_PREFIX, $config['prefix']);
}
if (! empty($config['read_timeout'])) {
$client->setOption(Redis::OPT_READ_TIMEOUT, $config['read_timeout']);
}
});
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: