Tp6使用Redis的订阅与发布

1.新建Redis的publish的控制器

<?php
namespace app\api\controller;


use think\cache\driver\Redis;

class MyRedis
{
    private $redis;

    public function __construct()
    {
        //初始化Redis链接
        $this->redis = new Redis();
    }

    public function RedisPublish()
    {
        //定义发布的信道名称
        $channel = 'test_channel';

        var_dump('开始发布数据');

        for ($i=0; $i<50; $i++){
            $data = "来自{$channel}频道的推送2--$i";
            //发布数据
            $this->redis->publish($channel, $data);
        }

        var_dump('发布数据结束');

        //关闭
        $this->redis->close();
    }

}

2.使用php think make:command RedisSub命令自定义subscribe指令

        a.在config/console.php文件中加入指令

       

        b.执行php think命令查看指令是否生成 

       

3.在subscribe中写入处逻辑

<?php
declare (strict_types = 1);

namespace app\command;

use think\cache\driver\Redis;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;

class RedisSub extends Command
{
    protected function configure()
    {
        // 指令配置
        $this->setName('redissub')
            ->setDescription('the redissub command');
    }

    protected function execute(Input $input, Output $output)
    {
        // 指令输出
        $redis = new Redis();
        //订阅的信道
        $channel = 'test_channel';
        echo "---- 订阅{$channel}这个频道,等待消息推送...----  <\n";

        $redis->subscribe([$channel], function ($redis, $channel, $msg){
            //消费订阅的消息的逻辑
            var_dump($msg);
        });
    }
}

4.执行消费者命令

       

 5.触发Publisher,发送消息给Subscriber

     

 6.查看Subscriber的执行情况

        

至此结束。

TP6ThinkPHP 6)是一个基于PHP的开源框架,它提供了丰富的功能和工具来简化Web应用程序的开发过程。在TP6使用Redis可以提高应用程序的性能和可扩展性。下面是一个演示如何在TP6使用Redis的例子: 首先,确保你已经安装了RedisPHPRedis扩展。然后,在TP6的配置文件`config/cache.php`中配置Redis连接信息,例如: ```php return [ // 默认缓存驱动 'default' => env('cache.driver', 'redis'), // 缓存连接方式配置 'stores' => [ // Redis缓存连接配置 'redis' => [ // 驱动方式 'type' => 'redis', // 服务器地址 'host' => '127.0.0.1', // 端口号 'port' => 6379, // 密码 'password' => '', // 缓存前缀 'prefix' => '', // 缓存有效期 0表示永久缓存 'expire' => 0, ], ], ]; ``` 接下来,在控制器中使用Redis进行缓存操作。例如,我们可以在一个控制器方法中设置和获取缓存: ```php <?php namespace app\controller; use think\facade\Cache; class Index { public function index() { // 设置缓存 Cache::store('redis')->set('name', 'John Doe'); // 获取缓存 $name = Cache::store('redis')->get('name'); return 'Hello, ' . $name; } } ``` 在上面的例子中,我们使用`Cache::store('redis')`来指定使用Redis作为缓存驱动。然后,我们可以使用`set`方法设置缓存,使用`get`方法获取缓存。 请注意,以上只是一个简单的示例,你可以根据自己的需求在TP6使用更多的Redis功能和方法。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值