PHP连接redis集群报错

本文详细解析在使用PHP连接Redis集群时遇到的密码输入问题,包括错误代码、原因分析及解决方案,涉及PHP-Redis扩展版本更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果在创建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的值,或者升级服务器。

### Java 应用程序连接 Redis 集群时遇到的连接被拒绝错误解决方案 当尝试通过 `127.0.0.1:7087` 连接 Redis 集群并收到 "connection refused" 错误时,可能的原因包括但不限于: #### 1. 端口未开放或服务未启动 确保目标机器上的 Redis 实例正在监听指定端口,并且防火墙配置允许外部访问该端口。可以通过命令行工具如 `netstat -an | grep 7087` 来验证端口状态。 #### 2. IP 地址绑定设置不当 如果 Redis 节点仅绑定了本地回环地址 (`127.0.0.1`) 或者特定网卡接口,则其他主机无法直接通过公网IP访问这些节点。检查 Redis 的配置文件中的 bind 参数是否正确设置了可接受请求的网络接口[^1]。 #### 3. 使用 Jedis 客户端库示例代码 为了建立到 Redis 集群的有效连接,在 Java 中可以采用如下方式初始化客户端实例: ```java import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; public class RedisConnectionExample { public static void main(String[] args) throws Exception { Set<HostAndPort> jedisClusterNodes = new HashSet<>(); // 添加所有集群节点的信息, 不仅仅是单个节点 jedisClusterNodes.add(new HostAndPort("node1_ip", node1_port)); jedisClusterNodes.add(new HostAndPort("node2_ip", node2_port)); try (JedisCluster jc = new JedisCluster(jedisClusterNodes)) { System.out.println("Successfully connected to cluster"); String response = jc.set("foo", "bar"); System.out.println(response); } catch(Exception e){ e.printStackTrace(); } } } ``` 请注意上述例子中并没有单独指向某一台服务器而是提供了整个集群内多个成员的位置信息给 JedisCluster 构造函数来创建会话对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值