PHP需通过redis扩展(如ext-redis)调用客户端方法操作Redis,而非使用“标签”;步骤包括安装启用扩展、实例化Redis类、connect连接、set/get存取字符串,以及hSet/lPush等操作哈希列表等数据类型。

1. 确保环境已支持 Redis
你的 PHP 环境必须安装并启用 redis 扩展(不是 memcached 或其他):
– Linux/macOS:通常用 pecl install redis + 修改 php.ini 加 extension=redis.so
– Windows:下载对应 PHP 版本的 php_redis.dll,配置 extension=php_redis.dll
– 验证:运行 php -m | grep redis 或 phpinfo() 查看是否列出 redis 模块
2. 连接 Redis 并存取基础数据
使用原生扩展(推荐)示例:
<?php
// 创建 Redis 实例
$redis = new Redis();
// 连接本地 Redis(默认端口 6379)
$redis->connect('127.0.0.1', 6379);
// 存字符串(key => value)
$redis->set('user:1001:name', '张三');
$redis->setex('session:abc123', 3600, 'logged_in'); // 带过期时间(秒)
// 取值
$name = $redis->get('user:1001:name'); // 返回 '张三'
var_dump($name);
?>
3. 存取更复杂结构(哈希、列表、JSON)
Redis 支持多种数据类型,PHP 扩展都提供对应方法:
-
哈希(Hash):适合对象属性存储
$redis->hSet('user:1001', 'email', 'zhang@example.com');$email = $redis->hGet('user:1001', 'email'); -
列表(List):如消息队列、最新 N 条日志
$redis->lPush('log:recent', 'User login at 2024-05-20');$latest = $redis->lRange('log:recent', 0, 9); // 取前10条 -
存数组/对象?先 JSON 编码
$data = ['id' => 1001, 'status' => 'active'];$redis->set('user:1001:json', json_encode($data));$arr = json_decode($redis->get('user:1001:json'), true);
4. 注意事项和常见坑
- 连接失败时要加异常处理:
try { $redis->connect(...); } catch (RedisException $e) { die($e->getMessage()); } - 不要在 HTML 模板(如 .php 文件混写 HTML)里裸写 Redis 操作——应放在逻辑层或封装成服务类
- 避免 key 冲突:用冒号分隔命名空间,如
cache:product:123、lock:order:456 - 生产环境建议用连接池或 Predis(纯 PHP 客户端)+ 连接复用,但原生 ext-redis 性能更好



















