[分享]PHP的Redis数据库调用
引言:
PHP 调用 Redis 数据库主要通过 PhpRedis 扩展或 Predis 客户端实现。本文系统介绍 Redis 服务安装、PhpRedis 与 Predis 的连接配置、字符串/哈希/列表/集合等数据结构操作,以及缓存、会话存储、限流计数器等典型应用场景,帮助 PHP 开发者快速集成 Redis 高性能内存数据库。
PHP 与 Redis 数据库调用完全指南
Redis 是一个高性能的内存数据库,常用于缓存、会话管理和实时分析场景。在 PHP 中调用 Redis,主要通过两种官方推荐的客户端实现:PhpRedis(C 扩展)和 Predis(纯 PHP 库)。本文将系统讲解安装配置、连接操作、数据读写及典型应用场景。
一、环境准备:安装 Redis 服务
在开始 PHP 调用之前,需要确保 Redis 服务已经安装并运行。
Ubuntu/Debian 系统:
1 | sudo apt-get update |
CentOS/RedHat 系统:
1 | sudo yum install redis |
验证 Redis 正常运行:
1 | redis-cli ping |
二、PHP Redis 客户端的选择与安装
PHP 连接 Redis 主要有两种方式,选择取决于你的环境需求。
方案一:PhpRedis(推荐,性能更优)
PhpRedis 是用 C 语言编写的 PHP 扩展,性能更高,是生产环境的首选方案。它通过 PECL 安装:
1 | # 安装 PhpRedis 扩展 |
安装完成后,在 php.ini 中添加以下配置启用扩展:
1 | extension=redis.so |
然后重启 Web 服务器或 PHP-FPM 使配置生效。你可以通过 php -m | grep redis 或 phpinfo() 确认扩展已成功加载。
各系统快捷安装方式:
| 系统 | 命令 |
|---|---|
| Ubuntu/Debian | sudo apt-get install php-redis |
| CentOS/RedHat | yum install php-devel php-common php-cli(然后通过 PECL 安装) |
方案二:Predis(纯 PHP 实现)
Predis 是一个纯 PHP 编写的 Redis 客户端,无需编译扩展,适合无法安装 C 扩展的环境。通过 Composer 安装:
1 | composer require predis/predis |
在代码中通过 Composer 自动加载即可使用。
三、建立与 Redis 的连接
使用 PhpRedis 连接
1 |
|
连接参数说明:
- host:Redis 服务器地址(IP 或域名)
- port:端口号,默认 6379
- timeout:连接超时时间(秒)
- auth:认证密码(如已设置)
使用 Predis 连接
1 |
|
四、数据读写操作(CRUD)
字符串操作
字符串是 Redis 最基础的数据类型,适合缓存简单的键值对数据。
1 | // 写入字符串 |
哈希表操作
哈希表适合存储对象或结构化数据。
1 | // 设置哈希表字段 |
列表操作
列表适合实现消息队列、历史记录等场景。
1 | // 从列表左侧推入(先进后出) |
集合操作
集合适合存储不重复的元素,支持交集、并集等操作。
1 | // 向集合添加成员 |
五、典型应用场景
场景一:数据缓存(减轻数据库压力)
1 |
|
场景二:PHP 会话存储
PhpRedis 支持将 PHP 会话直接存储在 Redis 中,适合多服务器分布式部署。在 php.ini 中配置:
1 | session.save_handler = redis |
如果 Redis 有密码认证:
1 | session.save_path = "tcp://127.0.0.1:6379?auth=your_password" |
支持多服务器负载均衡:
1 | session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2" |
场景三:计数器与限流
1 | // 文章阅读数累加 |
六、错误处理与最佳实践
连接错误处理
1 |
|
连接关闭
1 | $redis->close(); // 关闭连接 |
最佳实践建议
| 建议 | 说明 |
|---|---|
| 设置合理的过期时间 | 避免内存无限增长,使用 setex() 或 expire() |
| 生产环境使用 PhpRedis | 性能优于 Predis |
| 避免大键(Big Keys) | 单键数据过大可能导致性能问题 |
| 使用连接池或持久连接 | 减少频繁创建连接的开销 |
| 密码避免硬编码 | 使用环境变量存储 Redis 密码 |
总结
PHP 调用 Redis 的核心流程分为三步:
- 安装扩展:通过 PECL 安装 PhpRedis(或通过 Composer 安装 Predis)
- 建立连接:使用
new Redis()和connect()方法连接 Redis 服务 - 执行操作:使用
set()、get()、hSet()等方法进行数据读写
掌握这些基础操作后,可以进一步探索 Redis 的更多高级特性,如发布订阅、流水线(Pipeline)、事务(Multi/Exec)以及集群连接等。






![[分享]ESA一站式网站安全服务](/../blogimage/260819/260819.webp)
![[分享]PHP的扩展模块](/../blogimage/260807/260807_5.webp)
![[分享]PHP的SQLite数据库调用](/../blogimage/260807/260807_4.webp)
![[分享]PHP的MySQL数据库调用](/../blogimage/260807/260807_2.webp)