• thinkphp3.2 中 Memcache 的配置和使用(memcahe的使用场景)


    Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件。

    TIPS:

    TP3.2支持的缓存方式有:数据缓存类型,支持:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator

    (有redis的驱动类,不知道是否可用)

    尝试在windows下装memcached,测试thinkphp3.2使用memecache缓存方式

    1.下载memcache,使用cmd 安装,安装方法参照地址:

    --

    在Conf/config.php 中添加

    'DATA_CACHE_TYPE' => 'Memcache',
    'MEMCACHE_HOST'   => 'tcp://127.0.0.1:11211'
    'DATA_CACHE_TIME' => '3600',

    (2017.9.1修改更)在TP中使用 查询缓存 cache() 测试,也可直接使用S()函数,更多实现流程和操作方法可查看用户使用手册或者阅读TP源码:

    $result = $this->where($where)->cache('key',120,'memcache')->find();
    // $options['type'] = 'memcache';
    // $data = S('key','',$options);
    $data = S('key');

    Thinkphp 的 Action调用Memcache方法

    import("@.ORG.CacheMemcache");
    $cache = Cache::getInstance(); 
    $cache->set("uid",'1231');
    $cache->get("uid");
    $cache->rm("uid");
    $cache->clear();

    出现报错:

    后来发现由于命名空间原因:

    命名空间:

    (PHP 5 >= 5.3.0, PHP 7)

    什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到/home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。

    在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:

     

    1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
    2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

    注意:和3.1不同,我们无需在实例化命名空间定义的类之前导入类库文件了。

    ThinkPHP3.2中,已经将Memcache包含了进来,于是测试用例如下:

     config.php:
    1. 在Conf/config.php 中添加  
    2. 'DATA_CACHE_TYPE' => 'Memcache',   
    3. 'MEMCACHE_HOST'   => 'tcp://127.0.0.1:11211',    
    4. 'DATA_CACHE_TIME' => '3600',  

     TestController.class.php:

    1. 测试用例为:  
    2. public function index(){  
    3.         $class = new ThinkCacheDriverMemcache();  
    4.         $class->set('key','1234');  
    5.         $data = $class->get('key');  
    6.           
    7.         echo $data;  
    8.     }  
     

    运行结果:

     

  • 相关阅读:
    挂载nfs提示:mount.nfs: access denied by server while mounting...
    linux后台运行、关闭、查看后台任务常用命令
    linux sort命令用法
    tcping端口检测工具使用
    实现对MySQL数据库进行分库/分表备份(shell脚本)
    win server服务器 关闭危险端口 135,137,138,139,445的方法
    curl: (7) couldn't connect to host 解决方法
    vim调试Shell脚本: unexpected EOF while looking for matching
    sed:-e 表达式 #1,字符 10:未终止的“s”命令
    linux E325: 注意 发现交换文件 "*.swp" 解决方法
  • 原文地址:https://www.cnblogs.com/yokooo/p/6395001.html
Copyright © 2020-2023  润新知