thinkphp5框架扩展redis类方法示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp5框架扩展redis类方法示例相关的知识,希望对你有一定的参考价值。

参考技术A 本文实例讲述了thinkphp5框架扩展redis类方法。分享给大家供大家参考,具体如下:
笔者在开发时发现,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的相关方法。
这里的话,我就举一个例子了。
在控制器里去调用
这样就写入成功了。
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend
FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
您可能感兴趣的文章:针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例ThinkPHP行为扩展Behavior应用实例详解ThinkPHP应用模式扩展详解ThinkPHP框架设计及扩展详解ThinkPHP的Widget扩展实例老生常谈ThinkPHP中的行为扩展和插件(推荐)TP5(thinkPHP5)框架mongodb扩展安装及特殊操作示例thinkPHP下的widget扩展用法实例分析thinkPHP3.2.2框架行为扩展及demo示例ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】thinkphp5框架实现的自定义扩展类操作示例

Thinkphp 3.2使用Redis

(1)直接调用框架自带的Redis类:

路径:\\ThinkPHP\\Library\\Think\\Cache\\Driver\\Redis.class.php。

    public function test(){

        //创建一个redis对象
        $redis = new \\Redis();

        //连接本地的 Redis 服务
        $redis->connect(\'127.0.0.1\', 6379);

       //密码验证,如果没有可以不设置
        $redis->auth(\'123456\');

        //查看服务是否运行
        echo "Server is running: " . $redis->ping();
        echo \'<br/>\';
        //设置缓存
        $redis->set(\'username\',\'zhang san\',3600);

        //获取缓存
        $user_name = $redis->get(\'username\');
        var_dump($user_name);
    }    

运行结果:

Server is running: +PONG

string(9) "zhang san"


(2)使用S方法:

在配置文件中添加配置

\'DATA_CACHE_TYPE\' => \'Redis\',
\'REDIS_HOST\' => \'127.0.0.1\',
\'REDIS_PORT\' => 6379,

一、redis不设置密码的情况下:

    public function set_info(){
        S(\'study\',\'123\');        
    }

    public function get_info(){
        echo C(\'DATA_CACHE_TYPE\');
        echo \'<br/>\';

        $a = S(\'study\');
        echo $a;
    }

先访问set_info,再访问get_info,返回结果:

Redis
123

 

二、redis设置密码的情况下:

直接使用S方法,结果报错:

NOAUTH Authentication required.

然后添加设置
\'REDIS_AUTH\' => 123456,
找到Redis类,发现没有设置密码,在Redis.class.php的__construct方法里添加代码:

然后再测试S方法:
    public function set_info(){
        $a = S(\'study\',\'1223\');
        var_dump($a);   //true
    }

    public function get_info(){
        echo C(\'DATA_CACHE_TYPE\');  //Redis
        echo \'<br/>\';

        $a = S(\'study\');
        echo $a;  //1223
    }

 


 




 

以上是关于thinkphp5框架扩展redis类方法示例的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp5.0.5怎么部署安装

Thinkphp5 引入第三方类库的方法

thinkphp5 集成 redis

thinkphp5 extend扩展库放哪里,该怎么new

thinkphp5 extend扩展库放哪里,该怎么new

thinkphp5 消息队列thinkphp-queue扩展