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, zhangsantest.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能显著提升应用性能。
PHP与Redis缓存集成完整方案
发布时间:2026/6/6 12:13:40
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, zhangsantest.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能显著提升应用性能。