扩展thinkphp5的redis类方法

原生使用:

         //验证通过
                $res = $model->add();
                // 将任务加入队列
                $redis = new \Redis;
                $redis->connect('127.0.0.1', '6379');
                // 将需要发送邮件的会员的ID加入队列, 任务入队列
                $redis->lpush('memberEmailQueue', $res);
                $redis->close();
                $this->success('邮件队列加入成功, 需要耐心等待发送完成通知', U('/login'), 1);


namespace app\index\controller;
use  \think\Db;
use think\cache\driver\Redis;

class Index
{

    public function index()
    {
        $config = [
            'host'       => '服务器IP地址',
            'port'       => Redis端口号,
            'password'   => 'Redis访问密码',
            'select'     => 0,
            'timeout'    => 0,
            'expire'     => 0,
            'persistent' => false,
            'prefix'     => '',
        ];

        $Redis=new Redis($config);
        $Redis->set("test","test");
        echo  $Redis->get("test");
  }
}


笔者在开发时发现,thinkphp5的自带redis类方法,只有简单的读取缓存、写入缓存的基本方法,远不能满足我们业务的需求。redis本身支持五种数据类型,string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)。redis的东西就不必再介绍了,接下来还是让我一起扩展thinkphp5的redis方法吧!

首先我们先找到缓存驱动类里的,handler()方法,这个方法是返回Redis类的实例化对象的。

这就是实例化对象,包括了options配置项、handler资源句柄、tag标签。实际上这里的handler是new Redis()的对象实例。只要在外部拿到handler资源句柄,则可以对redis的操作进行扩展了。

在cache类里新增一个getHandler方法。

 

然后我们就可以在控制器调用了

打印的就是这个redis对象了

这里需要注意的是:

一个是调thinkphp5的redis的方法,就是这样用。

一个是如果你要调用原生的redis方法

 

基本的用法都讲完了。

接下来就愉快的开始扩展redis方法吧。

先找到这个类

这个类里并没有list的相关操作方法,那我们就来扩展list的相关方法。

这里的话,我就举一个例子了。

在控制器里去调用

这样就写入成功了。

 转自:http://www.cnblogs.com/yxhblogs/p/7224739.html?utm_source=itdadao&utm_medium=referral

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值