laravel - 如何使用 Redis TLS 配置 Laravel 5.7(使用 phpredis)

标签 laravel redis phpredis

我正在将 laravel 5.7 与 phpredis (PHP 7.2) 一起使用,但我无法让它与 tls 一起工作,我正在尝试将它与仅支持 tls 连接的 digitalocean Redis 管理的数据库一起使用

知道 laravel/phpredis 是否支持 tls 吗?

最佳答案

来自phpredis Github Repo README

$redis->connect('tls://127.0.0.1', 6379); // enable transport level security.

从 Laravel 的 illuminate\redis 源代码,检查 PhpRedisConnector.php 第 99 行

protected function establishConnection($client, array $config)
{
        $persistent = $config['persistent'] ?? false;

        $parameters = [
                $config['host'], // <---- Prepend the tls:// scheme here
                $config['port'],
                Arr::get($config, 'timeout', 0.0),
                $persistent ? Arr::get($config, 'persistent_id', null) : null,
                Arr::get($config, 'retry_interval', 0),
        ];

        if (version_compare(phpversion('redis'), '3.1.3', '>=')) {
                $parameters[] = Arr::get($config, 'read_timeout', 0.0);
        }

        $client->{($persistent ? 'pconnect' : 'connect')}(...$parameters);
}

因此,在您的 config\database.php 中添加 tls:// 模式

'redis' => [

    'client' => env('REDIS_CLIENT', 'phpredis'),

    'default' => [
            'url' => env('REDIS_URL'),
            'host' => 'tcp://' . env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DB', 0),
    ],
]

关于laravel - 如何使用 Redis TLS 配置 Laravel 5.7(使用 phpredis),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57733260/

相关文章:

laravel - 编辑中的字段唯一(已采用)?

c# - 多个客户端使用redis缓存

PHP Redis超时,连接读取错误?

php - 未捕获的 RedisException : session_write_close()

redis - 使用 phpredis 扫描命令性能

Laravel 邮件 Swift_IoException 无法打开文件进行读取

php - Laravel 5.1 - 尝试使用 Auth Boilerplate 作为 API 来防止 302 URL 重定向

php - 使用 mysql laravel 5 转换时间

redis - 如何在redis中导出/导入带有模式的键?

python - ZeroMQ、Redis 和 Gevent