Laravel連接Redis報錯

報錯:

錯誤1:MOVED 14315 172.200.0.1:6393
  • 示例:
Predis \ Response \ ServerException
MOVED 14315 172.200.0.1:6393
  • 問題原因:需要用集羣模式連接Redis集羣,例如,使用如下配置中的mycluster1連接.
#如果是用 redis-cli -h 172.17.0.1 -p 6379命令連接redis報此錯誤錯,則在命令中加-c參數即可,-c表示用集羣模式連接。
redis-cli -c -h 172.17.0.1 -p 6379
錯誤2:No connections available in the pool
  • 示例:
Predis \ ClientException
No connections available in the pool
  • 問題原因:redis集羣連接配置不正確
錯誤3:Redis connection [mycluster1] not configured.
  • 示例:
InvalidArgumentException
Redis connection [mycluster1] not configured.
  • 問題原因:沒有名稱爲mycluster1的集羣配置
錯誤4:No connections left in the pool for CLUSTER SLOTS
  • 示例:
Predis \ ClientException
No connections left in the pool for `CLUSTER SLOTS`

正確的使用示例:

配置示例:
'redis' => [
    'client' => 'predis',
    'default' => [
        'host' => env('REDIS_HOST', '172.17.0.1'),
        'password' => env('REDIS_PASSWORD', null),//無密碼要填null
        'port' => env('REDIS_PORT', 6379),
        'database' => 0,
    ],
    'options' => [
        'cluster' => 'redis',
    ],
    'clusters' => [
        //集羣1
        'cluster1' => [
            [
                'host' => '172.17.0.1',
                'password' => null,//無密碼要填null
                'port' => 6379,
                'database' => 0,
            ],
        ],
        //集羣2
        'cluster2' => [
            [
                'host' => '192.168.31.244',
                'password' => null,//無密碼要填null
                'port' => 6379,
                'database' => 0,
            ],
        ],
    ],
],
正確的連接示例:
$redis = Redis::connection('cluster1');
$redis->set('username','wdh');
echo $redis->get('username');

其他參考:

1.Laravel redis集羣:https : // www . cnblogs . com /yinguohai/p/11329273.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章