本文介绍使用 PHP 客户端连接腾讯云分布式缓存数据库实例的示例。
准备工作
环境要求
PHP 7.0及以上版本。
已安装 phpredis 扩展(推荐5.0及以上版本)。
安装客户端
通过 PECL 安装 phpredis 扩展:
pecl install redis
安装完成后,在
php.ini 中添加以下配置:extension=redis.so
验证安装:
php -m | grep redis
获取连接信息
1. 登录 分布式缓存数据库控制台。
2. 在实例列表中,单击目标实例 ID,进入实例详情页。
3. 在网络信息区域,获取实例的 VIP 地址和端口(默认6379)。
4. 在配置信息区域,获取实例的连接密码。
默认账号使用
实例 ID:密码 格式,自定义账号使用用户名@密码 格式;免密认证实例无需密码。连接示例
代理模式下,客户端通过 Proxy 代理层提供的统一 VIP 地址连接实例,Proxy 自动处理请求路由和故障转移,客户端无需感知后端拓扑变化。
基础连接示例
<?php// 连接参数$host = "192.xx.xx.2"; // 实例 VIP 地址$port = 6379; // 实例端口$password = "crs-xxxx:密码"; // 默认账号密码格式:实例ID:密码// 创建连接$redis = new Redis();// 连接实例,设置超时时间为 2 秒$redis->connect($host, $port, 2.0);// 认证$redis->auth($password);// 选择数据库(代理模式支持多 DB)$redis->select(0);// 写入数据$redis->set("name", "腾讯云分布式缓存数据库");// 读取数据$value = $redis->get("name");echo "get name: " . $value . "\\n";// 设置带过期时间的 Key$redis->setex("session:user123", 3600, "session_data");// 哈希操作$redis->hSet("user:1001", "name", "张三");$redis->hSet("user:1001", "age", "28");$userInfo = $redis->hGetAll("user:1001");echo "user info: ";print_r($userInfo);// 关闭连接$redis->close();?>
自定义账号连接示例
<?php$host = "192.xx.xx.2";$port = 6379;$username = "myuser";$password = "myuser@MyPassword"; // 代理模式自定义账号:用户名@密码整体作为密码传入$redis = new Redis();$redis->connect($host, $port, 2.0);$redis->auth($password);$redis->set("key", "value");echo $redis->get("key") . "\\n";$redis->close();?>
连接池示例
在高并发场景下,建议使用持久连接(pconnect)复用 TCP 连接,减少连接建立开销:
<?php$host = "192.xx.xx.2";$port = 6379;$password = "crs-xxxx:密码";// 使用持久连接,第四个参数为持久连接标识$redis = new Redis();$redis->pconnect($host, $port, 2.0, "persistent_id_01");$redis->auth($password);// 设置读写超时$redis->setOption(Redis::OPT_READ_TIMEOUT, 2);// 业务操作$redis->set("counter", 0);$redis->incr("counter");$count = $redis->get("counter");echo "counter: " . $count . "\\n";// 持久连接不需要显式关闭,由 PHP 生命周期管理?>
SSL 加密连接示例
<?php$host = "192.xx.xx.2";$port = 6379;$password = "crs-xxxx:密码";$caCertPath = "/path/to/ca.pem"; // CA 证书文件路径$redis = new Redis();// 配置 TLS/SSL 参数$redis->connect("tls://" . $host, $port, 2.0, null, 0, 0, ['stream' => ['verify_peer' => true,'verify_peer_name' => false,'cafile' => $caCertPath,]]);$redis->auth($password);$redis->set("ssl_test", "encrypted_connection");echo $redis->get("ssl_test") . "\\n";$redis->close();?>
连接参数说明
参数 | 说明 | 推荐值 |
host | 实例连接地址。代理模式为 VIP 地址,直连模式为分片节点地址 | - |
port | 实例端口号 | 6379 |
timeout | 连接超时时间(秒) | 2.0 |
read_timeout | 读取超时时间(秒) | 2.0 |
persistent | 是否使用持久连接 | 高并发场景建议开启 |
password | 认证密码 | 默认账号格式: 实例 ID:密码 |
常见问题
连接超时
确认客户端所在 CVM 与分布式缓存数据库实例在同一 VPC 内。
确认安全组规则已放通对应端口。
确认连接地址和端口正确。