标签分类
技术文章
当前位置:主页 > 计算机编程 > php > ThinkPHP3.2框架操作Redis的方法分析

ThinkPHP3.2框架操作Redis的方法实例

  • 发布时间:
  • 作者:码农之家原创
  • 点击:81

ThinkPHP3.2框架操作Redis的方法分析

这篇文章主要知识点是关于ThinkPHP3.2,操作Redis,ThinkPHP3.2框架操作Redis的方法分析,thinkphp5框架扩展redis类方法示例 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

ThinkPHP实战
ThinkPHP实战原书超清版
  • 类型:ThinkPHP大小:28.5 MB格式:PDF出版:清华大学出版社作者:夏磊
立即下载

更多相关的学习资源可以参阅 程序设计电子书PHP电子书、等栏目。

本文实例讲述了ThinkPHP3.2框架操作Redis的方法。分享给大家供大家参考,具体如下:

原本感觉 Redis 应该像是作为数据库的一种被拿来操作的,可是实际上 thinkphp 3.2 是把 redis 作为缓存的一种方式来进行解析的,从 redis 文件被存放的位置就可以看出来:

\ThinkPHP \Library \Think \Cache \Driver

是作为 Cache,缓存方式的一种被拿来使用的,可是经过我们前面的学习,我们发现 Redis 不光光能做这些。

还有一个发现是这样的,假设我在 thinkphp 的控制器中执行如下代码:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
  public function index() {
   // 配置 redis 缓存
   $set = array(
   'type' =>'redis' ,
   'host'=>'127.0.0.1' ,
   'port'=>6379,
   );
   // 实例化
   $redis=S($set);
   // 存储数据
   $redis->name="hello world again";
   $redis->id=1;
  }
}

之后我们到 redis-cli.exe 中查看以下存储的结果:

ThinkPHP3.2框架操作Redis的方法分析

接下来换种方式存储:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
  public function index() {
   // 配置 redis 缓存
   $set = array(
   'type' =>'redis' ,
   'host'=>'127.0.0.1' ,
   'port'=>6379,
   );
   // 设置要存储的数据
   $message = array(
   'name' =>'yang' ,
   'id'=>1
    );
   // 缓存
   S('message',$message,$set);
  }
}

再来查看缓存结果:

ThinkPHP3.2框架操作Redis的方法分析

从上述实验我们可以得出结论,thinkphp 官方给出的源码中只是把 redis 作为一个缓存的工具,如果我们需要实现更加丰富的操作的话,就需要自己封装类了。

看来又要去看 PHP 操作 Redis 了。官方不会像封装 MySql 一样给我封装好啊,直接拿来用多好。

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

thinkphp5框架扩展redis类方法示例

本文实例讲述了thinkphp5框架扩展redis类方法。分享给大家供大家参考,具体如下:

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

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

thinkphp5框架扩展redis类方法示例

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

thinkphp5框架扩展redis类方法示例

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

thinkphp5框架扩展redis类方法示例

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

thinkphp5框架扩展redis类方法示例

打印的就是这个redis对象了

thinkphp5框架扩展redis类方法示例

这里需要注意的是:

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

thinkphp5框架扩展redis类方法示例

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

thinkphp5框架扩展redis类方法示例

基本的用法都讲完了。

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

先找到这个类

thinkphp5框架扩展redis类方法示例

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

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

thinkphp5框架扩展redis类方法示例

在控制器里去调用

thinkphp5框架扩展redis类方法示例

这样就写入成功了。

thinkphp5框架扩展redis类方法示例

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到解决axios.interceptors.respon、 儿童python编程入门书籍推、 vue项目中使用md5加密以及、 等php文章进一步学习,感谢大家的阅读和支持。

上一篇:PHP常用正则表达式总结

下一篇:Laravel框架运行出错提示“RuntimeException No application encryption key has been specified”解决方案

展开 +

收起 -

学习笔记
网友NO.150015

thinkPHP框架通过Redis实现增删改查操作的方法详解

本文实例讲述了thinkPHP框架通过Redis实现增删改查操作的方法。分享给大家供大家参考,具体如下: 一、概述 Redis是一个NoSQL数据库,由于其数据类型的差异,所以要在MVC框架中实现CURD操作,比较繁锁。事实上在ThinkPHP框架中,只能实现简单的缓存应用。而不像MongoDB那样能够实现常见数据库的CURD操作。本文章将通过扩展的方式,实现Redis的CURD操作,这样我们就可以像操作普通的Mysql数据库那样实现Redis的编程了。 二、实现过程 接下为将以ThinkPHP作为MVC开发框架,详细介绍Redis的CURD操作。需要说明的是,在ThinkPHP中本身并不支持Redis开发环境,只支持使用Redis开发简单的数据缓存功能。所以我们必须要通过扩展功能,实现Redis的编程支持。为了方便读者学习,笔者临时开发了相应的模块扩展及数据库扩展。 解压下载后的压缩包,将得到DbRedis.class.php文件及RedisModel.class.php文件。将DbRedis.class.php文件复制到ThinkPHP/Extend/Driver/Db目录;将RedisModel.class.php文件复制到ThinkPHP/Extend/Model目录。然后在项目配置文件中加入Redis数据库连接信息,如以下代码所示。 'REDIS_HOST'='192.168.0.2','REDIS_PORT'=6379,'REDIS_AUTH'=123456,'REDIS_DB_PREFIX'='', 读者可根据实际环境填写即可。通过前面步骤,至此就完成了在ThinkPHP中进行Redis开发的前期准备,接下来将结合示例代……

网友NO.151580

thinkphp5框架扩展redis类方法示例

本文实例讲述了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入门教程》、……

网友NO.431237

详解thinkphp+redis+队列的实现代码

1,安装Redis,根据自己的PHP版本安装对应的redis扩展(此步骤简单的描述一下) 1.1,安装 php_igbinary.dll,php_redis.dll扩展此处需要注意你的php版本如图: 1.2,php.ini文件新增 extension=php_igbinary.dll;extension=php_redis.dll两处扩展 ok此处已经完成第一步redis环境搭建完成看看phpinfo 项目中实际使用redis 2.1,第一步配置redis参数如下,redis安装的默认端口为6379: ?php/* 数据库配置 */return array( 'DATA_CACHE_PREFIX' = 'Redis_',//缓存前缀 'DATA_CACHE_TYPE'='Redis',//默认动态缓存为Redis 'DATA_CACHE_TIMEOUT' = false, 'REDIS_RW_SEPARATE' = true, //Redis读写分离 true 开启 'REDIS_HOST'='127.0.0.1', //redis服务器ip,多台用逗号隔开;读写分离开启时,第一台负责写,其它[随机]负责读; 'REDIS_PORT'='6379',//端口号 'REDIS_TIMEOUT'='300',//超时时间 'REDIS_PERSISTENT'=false,//是否长连接 false=短连接 'REDIS_AUTH'='',//AUTH认证密码 );? 2.2,实际函数中使用redis: /** * redis连接 * @access private * @return resource * @author bieanju */ private function connectRedis(){ $redis=new \Redis(); $redis-connect(C("REDIS_HOST"),C("REDIS_PORT")); return $redis; } 2.3,秒杀的核心问题是在大并发的情况下不会超出库存的购买,这个就是处理的关键所以思路是第一步在秒杀类的先做一些基础的数据生成: //现在初始化里面定义后边要使用的redis参数public function _initial……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明