当前位置: 首页 > news >正文

PHP与Redis缓存集成完整方案

PHP与Redis缓存集成完整方案

Redis在PHP项目里太常用了。缓存、队列、计数器、排行榜都用得上。今天说说PHP操作Redis的各种用法。

Redis的基本操作很简单,set和get存取值。

```php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$redis->set('name', '张三');
echo $redis->get('name') . "\n";

$redis->setex('session:123', 3600, 'user_data');
$redis->mset(['k1' => 'v1', 'k2' => 'v2']);
$values = $redis->mget(['k1', 'k2']);
print_r($values);
?>
```

List结构可以用作队列。

```php
$redis->del('queue');

$redis->lPush('queue', '任务C');
$redis->lPush('queue', '任务B');
$redis->lPush('queue', '任务A');

while ($task = $redis->rPop('queue')) {
echo "处理: $task\n";
}

$redis->lPush('queue', 'task1', 'task2', 'task3');
echo "队列长度: " . $redis->lLen('queue') . "\n";
echo "范围: ";
print_r($redis->lRange('queue', 0, -1));
?>
```

Hash适合存储对象类型的数据。

```php
$redis->hSet('user:1001', 'name', '张三');
$redis->hSet('user:1001', 'age', 28);
$redis->hSet('user:1001', 'email', 'zhangsan@test.com');

echo "姓名: " . $redis->hGet('user:1001', 'name') . "\n";
$user = $redis->hGetAll('user:1001');
print_r($user);

$redis->hMSet('user:1002', ['name' => '李四', 'age' => 35]);
echo "字段存在: " . ($redis->hExists('user:1002', 'name') ? '是' : '否') . "\n";
?>
```

Set适合做集合运算。

```php
$redis->sAdd('user:1:tags', 'PHP', 'JavaScript', 'MySQL');
$redis->sAdd('user:2:tags', 'PHP', 'Python', 'Docker');

$common = $redis->sInter('user:1:tags', 'user:2:tags');
echo "共同标签: " . implode(', ', $common) . "\n";

$all = $redis->sUnion('user:1:tags', 'user:2:tags');
echo "所有标签: " . implode(', ', $all) . "\n";
?>
```

Sorted Set适合排行榜。

```php
$redis->zAdd('leaderboard', 9500, '张三');
$redis->zAdd('leaderboard', 8800, '李四');
$redis->zAdd('leaderboard', 9900, '王五');

$top3 = $redis->zRevRange('leaderboard', 0, 2, true);
echo "排行榜前三:\n";
foreach ($top3 as $player => $score) {
echo " $player: $score分\n";
}

$rank = $redis->zRevRank('leaderboard', '李四');
echo "李四排名: 第" . ($rank + 1) . "名\n";
?>
```

Redis的过期时间管理也很重要。EXPIRE设置过期时间,TTL查看剩余时间。合理设置过期时间可以避免内存堆积。

Redis在项目中的常见用法包括缓存数据库查询结果、Session存储、计数器、排行榜、消息队列、分布式锁等。用好Redis能显著提升应用性能。

http://www.jsqmd.com/news/961570/

相关文章:

  • 如何快速解密QQ音乐文件:3种格式一键转换的完整指南
  • AutoDock Vina分子对接:5分钟快速上手的开源药物发现工具
  • 廊坊江诗丹顿+万国手表专业回收,26年精选回收店铺排行榜推荐 - 莘州文化
  • 抖音批量下载终极指南:3分钟搞定100个无水印视频
  • 2026 宁波防水补漏瓷砖空鼓修复推荐,苏易修缮本土直营,滨海盐蚀潮汐返潮山体裂隙暗漏梅汛闷泡、瓷砖翘边拱起就近微创修 - 苏易修缮
  • 如何快速掌握ImageSearch:面向新手的完整本地图片搜索教程
  • WindowResizer:Windows窗口强制调整的终极免费工具指南
  • 嵌入式Linux内核启动崩溃:NAND驱动空指针解引用问题深度解析
  • 潍坊圣宝利农业科技:单拱/玻璃/薄膜连栋温室大棚建设实力厂家推荐 - 品牌推荐官
  • 新手友好:跟着茅佳源的教程,用快马AI生成你的第一个交互网页
  • 赤峰宝珀+宝玑+伯爵手表专业回收,26年精选回收店铺排行榜推荐 - 莘州文化
  • 平顶山江诗丹顿+万国手表专业回收,26年精选回收店铺排行榜推荐 - 莘州文化
  • 自制无源RS232-485转换器:从串口取电到差分通信的硬件设计全解析
  • 3步搞定网盘直链下载:免费突破限速的终极解决方案
  • 杭州特色糕点推荐:杨先生糕点,非遗匠心铸就江南地道风味 - 玖叁鹿
  • 用ModelSim看波形学数字电路:Quartus 18.1下全加器时序仿真实战解析
  • 从宽带误解到带宽本质:信号与信道匹配的工程实践指南
  • Gradle 依赖冲突实战:手把手教你解决 TinyPinyin 的 Duplicate class 报错
  • 2026年绝缘子生产厂家推荐:山东伏拓电力科技全系产品供应解析 - 品牌推荐官
  • 031、广角镜头设计难点:畸变控制、边缘锐度与视场角扩展的工程权衡
  • STC89C51数字电子钟Proteus仿真包:带LCD显示、按键调时、整点报时和可设闹钟
  • Synplify Pro黑匣子综合:FPGA/ASIC设计中的模块隔离与集成技术
  • 达州宝珀+宝玑+伯爵手表专业回收,26年精选回收店铺排行榜推荐 - 莘州文化
  • 平凉江诗丹顿+万国手表专业回收,26年精选回收店铺排行榜推荐 - 莘州文化
  • 15天学会AI应用开发(四)根据Token长度截断历史对话
  • 2026沈阳城市建设学院多少分能上?录取线怎么样,高吗? - 品牌2026
  • Obsidian Excel插件:在笔记中构建数据管理新范式
  • SPT-AKI存档编辑器终极指南:简单快速掌握塔科夫单机版角色管理
  • Horos开源医学影像查看器:macOS上免费的DICOM处理终极指南
  • 程明律师:专注离婚财产分割与继承纠纷,十年经验守护原配权益 - 品牌推荐官