如何用ThinkPHP结合Redis实现秒杀场景实战学习?

摘要:Redis + ThinkPHP 实战学习手册(含秒杀场景) 目录 基础准备:ThinkPHP 集成 Redis Redis 核心数据结构(ThinkPHP 用法) 秒杀场景核心:Redis 原子性与事务 ThinkPHP
Redis + ThinkPHP 实战学习手册(含秒杀场景) 目录 基础准备:ThinkPHP 集成 Redis Redis 核心数据结构(ThinkPHP 用法) 秒杀场景核心:Redis 原子性与事务 ThinkPHP + Redis 实战场景(秒杀 / 缓存 / 限流) 常见问题与面试避坑 一、基础准备:ThinkPHP 集成 Redis 1.1 环境要求 ThinkPHP 5.1+/6.0+(推荐 6.0+,缓存扩展更完善) PHP Redis 扩展(php_redis.dll,需在 php.ini 中启用) Redis 服务(本地 / 服务器部署,默认端口 6379) 1.2 配置 Redis(ThinkPHP) 步骤 1:修改配置文件 在 config/cache.php 中配置 Redis 缓存驱动: return [ // 默认缓存驱动 'default' => env('cache.driver', 'redis'), // 缓存连接配置 'stores' => [ 'redis' => [ 'type' => 'redis', 'host' => env('redis.host', '127.0.0.1'), 'port' => env('redis.port', 6379), 'password' => env('redis.password', ''), // 无密码留空 'select' => env('redis.select', 0), // 数据库索引(0-15) 'timeout' => 0, // 超时时间 'persistent' => false, // 是否长连接 'prefix' => 'tp_seckill_', // 缓存前缀(避免键名冲突) ], ], ]; 步骤 2:环境变量配置(.env 文件) 在项目根目录 .env 中添加 Redis 配置(可选,优先级更高): REDIS_HOST=127.0.0.1 REDIS_PORT=6379 REDIS_PASSWORD= REDIS_SELECT=0 步骤 3:测试连接 在 ThinkPHP 控制器中测试 Redis 是否可用: namespace app\controller; use think\facade\Cache; class RedisTest { public function test() { // 写入缓存 Cache::set('test_key', 'hello redis', 3600); // 有效期1小时 // 读取缓存 $value = Cache::get('test_key'); echo $value; // 输出:hello redis // 直接操作 Redis 原生方法(获取 Redis 句柄) $redis = Cache::store('redis')->handler(); $redis->set('native_key', '原生方法测试'); echo $redis->get('native_key'); // 输出:原生方法测试 } } 二、Redis 核心数据结构(ThinkPHP 用法) Redis 5 种核心数据结构,对应 ThinkPHP 缓存操作,重点掌握秒杀常用的 String Hash List。
阅读全文