资讯专栏INFORMATION COLUMN

laravel 监听redis key过期的进行回调

suemi / 2476人阅读

摘要:修改配置开启文件中或者在客户端输入如下命令修改配置页面站点默认走的订阅监听长连接不要断在脚本的地方实现监听方法创建新的实例订阅的频道过期的

1.修改redis 配置

开启redis.conf 文件中 notify-keyspace-events Ex

或者 在redis-cli 客户端输入如下命令:
config set notify-keyspace-events Ex

2.修改laravel database.php
//datebase.php配置页面
"redis" => [
        "client" => "predis",
        "default" => [
            "host" => env("REDIS_HOST", "127.0.0.1"),
            "password" => env("REDIS_PASSWORD", null),
            "port" => env("REDIS_PORT", 6379),
            "database" => 0,
            "queue" => "{default}",//queue站点默认走的redis
        ],
        "publisher" => [ //redis 订阅监听
                    "host" => env("REDIS_HOST", "127.0.0.1"),
                    "password" => env("REDIS_PASSWORD", null),
                    "port" => env("REDIS_PORT", 6379),
                    "database" => 0,
                    "read_write_timeout"=>0,//长连接不要断
                ],
           ]
3.在脚本的地方实现监听方法
        $redis=Redis::connection("publisher");//创建新的实例
        $redis->psubscribe(["__keyevent@*__:expired"], function ($message, $channel) {
            echo $channel.PHP_EOL;//订阅的频道
            echo $message.PHP_EOL;//过期的key
            echo "---".PHP_EOL;
        });

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31385.html

相关文章

  • laravel 任务调度实例

    摘要:导语之前写过使用的进行定时任务,实际上也可以执行定时任务。需求是统计每日访问的数,虽然数据表中有数据,为了演示,新建监听器统计。记录这篇文章中介绍了实现了事件监听器,在此基础上进行扩展。 导语 之前写过使用 Linux 的进行定时任务,实际上 laravel 也可以执行定时任务。需求是统计每日访问的 IP 数,虽然数据表中有数据,为了演示,新建监听器统计。 记录 IP 这篇文章中介绍了...

    loonggg 评论0 收藏0
  • laravel利用Redis来实现网站缓存读取

    摘要:丰富的数据类型支持二进制案例的及数据类型操作。原子的所有操作都是原子性的,同时还支持对几个操作全并后的原子性执行。丰富的特性还支持通知过期等等特性。完成上述配置之后我们就可以在应用代码中使用进行数据存取了。 教科书式开头————先看一下redis的简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value ...

    yankeys 评论0 收藏0
  • Laravel学习笔记之Redis保存页面浏览量

    摘要:说明本文主要讲述使用作为缓存加快页面访问速度。何不用来做缓存,等到该达到一定浏览页面后再刷新下,效率也很高。可作缓存系统队列系统。 说明:本文主要讲述使用Redis作为缓存加快页面访问速度。同时,作者会将开发过程中的一些截图和代码黏上去,提高阅读效率。 备注:作者最近在学习github上别人的源码时,发现好多在计算一篇博客页面访问量view_count时都是这么做的:利用Laravel...

    z2xy 评论0 收藏0
  • laravel使用redis监听在内部再次使用redis遇到问题

    摘要:问题一启用监听收不到过期时间消息,原因是未开启配置解决办法是在配置文件内开启或者在命令行使用命令问题二原因是默认链接时间未秒,在设置为即可。问题三这个是因为一个链接使用监听时,无法使用其他命令。将监听事件设置为单独实例。 问题一:启用监听收不到过期时间消息,原因是未开启配置解决办法是 在redis配置文件内开启 notify-keyspace-events Ex或者在redis命令行 ...

    Harriet666 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<