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类方法示例的主要内容,如果未能解决你的问题,请参考以下文章