如果在创建redis集群的时候,已经设置了requirepass密码,连接的时候却无处输入密码。
代码
<?php
$serv = [
'47.10.13.21:6319',
'12.78.20.25:6329',
'13.22.13.15:6379'
];
$pass = 'xxxxx';
try {
$redis = new RedisCluster(null, $serv, 2, 2, true, $pass);
$b = $redis->set("tet003",date('c'));
$r = $redis->get('tet003');
var_dump($r);
} catch (RedisClusterException $e) {
var_dump($e->getMessage());
}
网上说的第6个参数是传入密码,实际上这样设置会报错提示Warning: RedisCluster::__construct() expects at most 5 parameters, 6 given
。
原因
版本问题,php-redis扩展版本不支持,下载最新版本。
解决办法
重新下载版本 PHPRedis 4.3 文件 php_redis-4.3.0rc1-7.3-ts-vc15-x64.zip
地址 https://windows.php.net/downloads/pecl/releases/redis/4.3.0rc1/php_redis-4.3.0rc1-7.3-ts-vc15-x64.zip
其它
错误提示Timed out attempting to find data in the correct node!
你服务器性能太差了。加大timeout的值,或者升级服务器。