首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS ElastiCache Redis无法从Laravel连接,显示错误:池中没有可用的连接

AWS ElastiCache Redis无法从Laravel连接,显示错误:池中没有可用的连接
EN

Stack Overflow用户
提问于 2021-05-27 08:14:25
回答 1查看 586关注 0票数 1

使用AWS Elasticache集群安装Laravel 8.x缓存:

我已经尝试过许多我找到的配置。但它们都不管用。

我试着从redis-cli连接Elasticache集群,它与乒乓球一起工作。

但不使用laravel:(错误:,池中没有可用的连接)

这是我的配置:

代码语言:javascript
复制
'redis' => [
        'cluster' => true,
        'client' => env('REDIS_CLIENT', 'predis'),

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'redis'),
            'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),

            // 'ssl' => ['verify_peer' => false], => have tried, it not working
            /*
            'parameters' => [ => have tried, it not working
                'scheme'   => env('REDIS_SCHEME', 'tcp'),
                'host'     => env('REDIS_HOST', 'localhost'),
                'password' => env('REDIS_PASSWORD', null),
                'port'     => env('REDIS_PORT', 6379),
                'database' => 0,
                'timeout' => 15,
            ],
            */
        ],

        'clusters' => [
            'default' => [
                [
                    'scheme'   => env('REDIS_SCHEME', 'tcp'),
                    'host' => env('REDIS_HOST', 'localhost'),
                    'password' => env('REDIS_PASSWORD', null),
                    'port' => env('REDIS_PORT', 6379),
                    'database' => env('REDIS_CACHE_DB', 0),
                    'read_write_timeout' => 30,
                ],
            ],
            'cache' => [
                [
                    'scheme'   => env('REDIS_SCHEME', 'tcp'),
                    'host' => env('REDIS_HOST', '127.0.0.1'),
                    'password' => env('REDIS_PASSWORD', null),
                    'port' => env('REDIS_PORT', 6379),
                    'database' => env('REDIS_CACHE_DB', 1),
                ]
            ],
            'options' =>[
                'cluster' =>'redis',
            ]
        ],
    ],

我尝试过在Ec2中将Elasticache与Redis连接起来,它可以连接:

这是Elasticache的信息:

这是我的.env:

代码语言:javascript
复制
CACHE_DRIVER=redis

REDIS_HOST=xxxxx.xxxxx.clustercfg.xxxxx.cache.amazonaws.com
REDIS_PASSWORD=null
REDIS_PORT=6379

顺便说一句,我连接了配置端点(不是主端点),并且已经在composer.json中安装了composer.json。

我改变了很多我在谷歌上找到的配置,但是它不起作用。救命啊!!

感谢您的阅读。

EN

回答 1

Stack Overflow用户

发布于 2021-06-02 02:23:54

解决方案:通过使用**phpredis **进行更改:

服务器中的

  1. 安装php-redis:

代码语言:javascript
复制
sudo yum -y install php-redis
sudo systemctl restart php-fpm.service

  1. 更改配置:

代码语言:javascript
复制
  'redis' => [

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

不知道为什么它不适用于predis。即使配置是相同的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67718270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档