auth($resis_pwd); // 选择数据库(默认0) $redis->select(0); // 设置读取超时(-1表示不超时) $redis->setOption(\Redis::OPT_READ_TIMEOUT, -1); // 订阅键过期事件频道 // __keyevent@0__:expired 表示监听0号数据库的键过期事件 $redis->psubscribe(['__keyevent@0__:expired'], function ($pattern, $channel, $key) use($redis){ // 例如根据键名前缀处理不同业务 // 营销短信 $str = 'expired:sms:'; if (strpos($key, $str) === 0) { $id = str_replace($str, '', $key); // 发给队列 Redis::send('send.mark.sms', '1,' . $id); Log::info ("处理营销短信过期: {$id}\n{}"); } // 微信模版 $str = 'expired:wechat:'; if (strpos($key, $str) === 0) { $id = str_replace($str, '', $key); // 发给队列 Redis::send('send.wechat.temp', '1,' . $id); Log::info ("处理微信模版消息过期: {$id}\n{}"); } }); } }