php监听redis key失效触发回调事件是什么
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇文章给大家分享的是有关php监听redis key失效触发回调事件是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。订单超时、活动
千家信息网最后更新 2025年11月07日php监听redis key失效触发回调事件是什么
本篇文章给大家分享的是有关php监听redis key失效触发回调事件是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
订单超时、活动过期解决方案:php监听redis key失效触发回调事件
Redis 的 2.8.0 版本之后可用,键空间消息(Redis Keyspace Notifications),配合 2.0.0 版本之后的 SUBSCRIBE 就能完成这个定时任务的操作了,定时的单位是秒。
1.我们先订阅频道名为 redisChat
2.现在,我们重新开启个 redis 客户端,然后在同一个频道 redisChat 发布消息,订阅者就能接收到消息。
接收到的消息如下:
3.Key过期事件的Redis配置
这里需要配置 notify-keyspace-events 的参数为 "Ex"。x 代表了过期事件。notify-keyspace-events "Ex" 保存配置后,重启Redis服务,使配置生效。
PHP redis实现订阅键空间通知
redis实例化类:
redis.class.php
//遇到类别重复的报错,所有叫Redis2class Redis2 { private $redis; public function __construct($host = '127.0.0.1', $port = 6379) { $this->redis = new Redis(); $this->redis->connect($host, $port); } public function setex($key, $time, $val) { return $this->redis->setex($key, $time, $val); } public function set($key, $val) { return $this->redis->set($key, $val); } public function get($key) { return $this->redis->get($key); } public function expire($key = null, $time = 0) { return $this->redis->expire($key, $time); } public function psubscribe($patterns = array(), $callback) { $this->redis->psubscribe($patterns, $callback); } public function setOption() { $this->redis->setOption(\Redis::OPT_READ_TIMEOUT, -1); } }过期事件的订阅:
psubscribe.php
require_once './Redis.class.php';$redis = new \Redis2();// 解决Redis客户端订阅时候超时情况$redis->setOption();$redis->psubscribe(array('__keyevent@0__:expired'), 'keyCallback');// 回调函数,这里写处理逻辑function keyCallback($redis, $pattern, $chan, $msg){ echo "Pattern: $pattern\n"; echo "Channel: $chan\n"; echo "Payl oad: $msg\n\n"; //keyCallback为订阅事件后的回调函数,这里写业务处理逻辑, //比如前面提到的商品不支付自动撤单,这里就可以根据订单id,来实现自动撤单 }设置过期事件:
index.php
require_once './Redis.class.php';$redis = new \Redis2();$order_id = 123;$redis->setex('order_id',10,$order_id);先用命令行模式执行 psubscribe.php
在浏览器访问 index.php
以上就是php监听redis key失效触发回调事件是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
事件
订阅
消息
配置
监听
频道
函数
客户
客户端
更多
版本
知识
空间
篇文章
订单
逻辑
处理
实用
业务
代表
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
2016服务器共享盘设置限额
网络安全法培训动态
网络安全手争做阳光好少年
ios软件开发自学
阿里邮箱上传图片服务器认证失败
网络技术对建筑学的影响
格力应用软件开发岗怎么样
川海网络技术官方
数据库安全性保护功能
软件开发的pd是什么
大型数据库概论朱辉生
电脑做服务器教程
怎么修改电脑代理服务器
三国战纪2不同服务器账号
耐特康赛网络技术 怎么样
网络安全竞赛6个方向
奇迹架设能进游戏没服务器
人月神话软件开发作者
2019网络安全就业前景
沈阳航空航天大学文献数据库
sql数据库关系图
软件开发的交付物是什么
网络安全运维培训
哈尔滨电子病例软件开发
无限空间网络技术
乡村小学网络安全自查报告
国外软件开发什么水平
维姆网络服务器文件
软件开发后内存高
批量修改图片数据库