<legend id='14qp0'><style id='14qp0'><dir id='14qp0'><q id='14qp0'></q></dir></style></legend>
  • <i id='14qp0'><tr id='14qp0'><dt id='14qp0'><q id='14qp0'><span id='14qp0'><b id='14qp0'><form id='14qp0'><ins id='14qp0'></ins><ul id='14qp0'></ul><sub id='14qp0'></sub></form><legend id='14qp0'></legend><bdo id='14qp0'><pre id='14qp0'><center id='14qp0'></center></pre></bdo></b><th id='14qp0'></th></span></q></dt></tr></i><div id='14qp0'><tfoot id='14qp0'></tfoot><dl id='14qp0'><fieldset id='14qp0'></fieldset></dl></div>

  • <tfoot id='14qp0'></tfoot>

  • <small id='14qp0'></small><noframes id='14qp0'>

          <bdo id='14qp0'></bdo><ul id='14qp0'></ul>
      1. 带有 laravel 5.5 的 Predis“Aggregate/RedisCluster.php:33

        时间:2023-10-04

          <legend id='9STiS'><style id='9STiS'><dir id='9STiS'><q id='9STiS'></q></dir></style></legend>
            <bdo id='9STiS'></bdo><ul id='9STiS'></ul>

                  <tbody id='9STiS'></tbody>

              1. <tfoot id='9STiS'></tfoot>

                <small id='9STiS'></small><noframes id='9STiS'>

                  <i id='9STiS'><tr id='9STiS'><dt id='9STiS'><q id='9STiS'><span id='9STiS'><b id='9STiS'><form id='9STiS'><ins id='9STiS'></ins><ul id='9STiS'></ul><sub id='9STiS'></sub></form><legend id='9STiS'></legend><bdo id='9STiS'><pre id='9STiS'><center id='9STiS'></center></pre></bdo></b><th id='9STiS'></th></span></q></dt></tr></i><div id='9STiS'><tfoot id='9STiS'></tfoot><dl id='9STiS'><fieldset id='9STiS'></fieldset></dl></div>
                  本文介绍了带有 laravel 5.5 的 Predis“Aggregate/RedisCluster.php:337 中的池中没有可用连接"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我已经在 Amazon ElastiCache 上为缓存设置了 redis-cluster,使用 Laravel 5.5 和 Predis 包,我收到以下错误.

                  PredisClientException: 在 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php:337 中的池中没有可用的连接

                  <块引用>

                  跟踪:PredisClientException: 在 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php:337 中的池中没有可用连接

                  堆栈跟踪:

                  0 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(411):PredisConnectionAggregateRedisCluster->guessNode(153)

                  1 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(388):PredisConnectionAggregateRedisCluster->getConnectionBySlot(153)

                  2 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(550):PredisConnectionAggregateRedisCluster->getConnection(Object(PredisCommandStringSetExpire))

                  3 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(593):PredisConnectionAggregateRedisCluster->retryCommandOnFailure(Object(PredisCommandStringSetExpire),'执行命令')

                  4 vendor/predis/predis/src/Client.php(331): PredisConnectionAggregateRedisCluster->executeCommand(Object(PredisCommandStringSetExpire))

                  5 vendor/predis/predis/src/Client.php(314): PredisClient->executeCommand(Object(PredisCommandStringSetExpire))

                  6 vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(96):PredisClient->__call('setex', Array)

                  7 vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(108):IlluminateRedisConnectionsConnection->command('setex', Array)

                  8 vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php(93): IlluminateRedisConnectionsConnection->__call('setex', Array)

                  9 vendor/laravel/framework/src/Illuminate/Cache/Repository.php(195): IlluminateCacheRedisStore->put('5rr44TBjIPEgJSx...','a:1:{s:6:"_flas...', 480)

                  10 vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php(66):IlluminateCacheRepository->put('5rr44TBjIPEgJSx...','a:1:{s:6:"_flas...', 480)

                  11 vendor/laravel/framework/src/Illuminate/Session/Store.php(128): IlluminateSessionCacheBasedSessionHandler->write('5rr44TBjIPEgJSx...','a:1:{s:6:"_flas...')

                  12 vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87):IlluminateSessionStore->save()

                  13 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218):IlluminateSessionMiddlewareStartSession->terminate(Object(IlluminateHttpRequest),对象(IlluminateHttpResponse))

                  14 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189):IlluminateFoundationHttpKernel->terminateMiddleware(Object(IlluminateHttpRequest),对象(IlluminateHttpResponse))

                  15 public/index.php(58): IlluminateFoundationHttpKernel->terminate(Object(IlluminateHttpRequest),对象(IlluminateHttpResponse))

                  16 {main}

                  我使用的技术栈:

                  • PHP7.0
                  • Laravel5.5
                  • 操作系统(Debian GNU/Linux 9.6 (stretch)),9.6 版

                  我在 config/database.php 中尝试了以下配置:

                  redis=>['客户' =>'predis','选项' =>['集群' =>'redis',],'集群' =>['默认' =>[['主机' =>环境('REDIS_CLUSTER_HOST','本地主机'),'密码' =>env('REDIS_CLUSTER_PASSWORD', null),'端口' =>环境('REDIS_CLUSTER_PORT',6379),'数据库' =>0,],],'缓存' =>[['主机' =>环境('REDIS_CLUSTER_HOST','本地主机'),'密码' =>env('REDIS_CLUSTER_PASSWORD', null),'端口' =>环境('REDIS_CLUSTER_PORT',6379),'数据库' =>0,],],]]

                  我也试过 timeout => 0|5|60 但每次我都遇到同样的错误.

                  任何帮助将不胜感激!

                  解决方案

                  这在我们的环境中起作用:

                   'redis' =>['集群' =>真的,'客户' =>'predis','选项' =>['集群' =>'redis','参数' =>['方案' =>env('REDIS_SCHEME', 'tcp'),'主机' =>环境('REDIS_HOST','本地主机'),'密码' =>env('REDIS_PASSWORD', null),'端口' =>环境('REDIS_PORT',6379),'数据库' =>0,'超时' =>15、],],'集群' =>['默认' =>['方案' =>env('REDIS_SCHEME', 'tcp'),'主机' =>环境('REDIS_HOST','本地主机'),'密码' =>env('REDIS_PASSWORD', null),'端口' =>环境('REDIS_PORT',6379),'数据库' =>0,'超时' =>15、],],],

                  基于此处找到的信息:https://github.com/nrk/predis/issues/480 - 但还需要复制选项中的所有默认"配置值 -> 参数组

                  REDIS_HOST,指向 AWS elasticache 的 redis 集群中的配置端点.

                  I've setup redis-cluster on Amazon ElastiCache for cache, using Laravel 5.5 and Predis package, I get the following error.

                  PredisClientException: No connections available in the pool in vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php:337 
                  

                  Trace: PredisClientException: No connections available in the pool in vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php:337

                  Stack trace:

                  0 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(411): PredisConnectionAggregateRedisCluster->guessNode(153)

                  1 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(388): PredisConnectionAggregateRedisCluster->getConnectionBySlot(153)

                  2 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(550): PredisConnectionAggregateRedisCluster->getConnection(Object(PredisCommandStringSetExpire))

                  3 vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php(593): PredisConnectionAggregateRedisCluster->retryCommandOnFailure(Object(PredisCommandStringSetExpire), 'executeCommand')

                  4 vendor/predis/predis/src/Client.php(331): PredisConnectionAggregateRedisCluster->executeCommand(Object(PredisCommandStringSetExpire))

                  5 vendor/predis/predis/src/Client.php(314): PredisClient->executeCommand(Object(PredisCommandStringSetExpire))

                  6 vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(96): PredisClient->__call('setex', Array)

                  7 vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php(108): IlluminateRedisConnectionsConnection->command('setex', Array)

                  8 vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php(93): IlluminateRedisConnectionsConnection->__call('setex', Array)

                  9 vendor/laravel/framework/src/Illuminate/Cache/Repository.php(195): IlluminateCacheRedisStore->put('5rr44TBjIPEgJSx...', 'a:1:{s:6:"_flas...', 480)

                  10 vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php(66): IlluminateCacheRepository->put('5rr44TBjIPEgJSx...', 'a:1:{s:6:"_flas...', 480)

                  11 vendor/laravel/framework/src/Illuminate/Session/Store.php(128): IlluminateSessionCacheBasedSessionHandler->write('5rr44TBjIPEgJSx...', 'a:1:{s:6:"_flas...')

                  12 vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): IlluminateSessionStore->save()

                  13 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): IlluminateSessionMiddlewareStartSession->terminate(Object(IlluminateHttpRequest), Object(IlluminateHttpResponse))

                  14 vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): IlluminateFoundationHttpKernel->terminateMiddleware(Object(IlluminateHttpRequest), Object(IlluminateHttpResponse))

                  15 public/index.php(58): IlluminateFoundationHttpKernel->terminate(Object(IlluminateHttpRequest), Object(IlluminateHttpResponse))

                  16 {main}

                  Technical stack I used:

                  • PHP7.0
                  • Laravel5.5
                  • OS (Debian GNU/Linux 9.6 (stretch)), Release 9.6

                  I tried the following configs in config/database.php:

                  redis=> [
                  'client'  => 'predis',
                          'options' => [
                              'cluster' => 'redis',
                          ],
                          'clusters' => [
                              'default' => [
                                  [
                                      'host' => env('REDIS_CLUSTER_HOST', 'localhost'),
                                      'password' => env('REDIS_CLUSTER_PASSWORD', null),
                                      'port' => env('REDIS_CLUSTER_PORT', 6379),
                                      'database' => 0,
                                  ],
                              ],
                              'cache' => [
                                  [
                                      'host' => env('REDIS_CLUSTER_HOST', 'localhost'),
                                      'password' => env('REDIS_CLUSTER_PASSWORD', null),
                                      'port' => env('REDIS_CLUSTER_PORT', 6379),
                                      'database' => 0,
                                  ],
                              ],
                          ]
                  ]
                  

                  I also tried with timeout => 0|5|60 but every time I get the same error.

                  Any help would be highly appreciated!

                  解决方案

                  This is working in in our env:

                      'redis' => [
                           'cluster' => true,
                  
                           'client' => 'predis',
                  
                           'options' => [
                               'cluster' => 'redis',
                               'parameters' => [
                                   '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' => 0,
                                   'timeout' => 15,
                               ],
                           ],
                       ],
                  

                  Based on info found here: https://github.com/nrk/predis/issues/480 - but needed to also replicate all 'default' config values in the options -> parameters group

                  REDIS_HOST, is pointing to the configuration endpoint in AWS elasticache's redis cluster.

                  这篇关于带有 laravel 5.5 的 Predis“Aggregate/RedisCluster.php:337 中的池中没有可用连接"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:你如何搜索带有值的键?例如,获取值为“someva 下一篇:Laravel 6 config()->get('database.connections.mysql

                  相关文章

                  最新文章

                  <small id='9Whwo'></small><noframes id='9Whwo'>

                  <i id='9Whwo'><tr id='9Whwo'><dt id='9Whwo'><q id='9Whwo'><span id='9Whwo'><b id='9Whwo'><form id='9Whwo'><ins id='9Whwo'></ins><ul id='9Whwo'></ul><sub id='9Whwo'></sub></form><legend id='9Whwo'></legend><bdo id='9Whwo'><pre id='9Whwo'><center id='9Whwo'></center></pre></bdo></b><th id='9Whwo'></th></span></q></dt></tr></i><div id='9Whwo'><tfoot id='9Whwo'></tfoot><dl id='9Whwo'><fieldset id='9Whwo'></fieldset></dl></div>

                  • <bdo id='9Whwo'></bdo><ul id='9Whwo'></ul>
                  <tfoot id='9Whwo'></tfoot>
                    1. <legend id='9Whwo'><style id='9Whwo'><dir id='9Whwo'><q id='9Whwo'></q></dir></style></legend>