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 协议》,转载必须注明作者和本文链接
宇宙最厉害
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!