修改ThinkPHP缓存为Memcache的方法
一般来说,ThinkPHP的默认缓存方式是以File文件方式实现的,运行时会在/Runtime/Temp 下生成很多的缓存文件。
有的情况下服务器装了memcached之后,需要将ThinkPHP的缓存方式更改成memecache方式
具体操作步骤如下:
在Conf/config.php 中添加:
'DATA_CACHE_TYPE' => 'Memcache', 'MEMCACHE_HOST' => 'tcp://127.0.0.1:11211',
更新缓存后刷新页面发现缓存并没有生效。
得到调试信息:
[ 2010-09-30T11:41:56+08:00 ] NOTIC: [8] MemcachePool::set(): Server 127.0.0.1 (tcp 11211, udp 0) failed with: CLIENT_ERROR bad command line format (0) CacheMemcache.class.php 第 107 行.
于是找到这句:
return $this->handler->set($name, $value, 0, $expire);
进一步调试之后发现 $expire 的值是-1; 写程序的时候并没有指定缓存的时长,这里的-1可能不被memcached接受。
于是在Conf/config.php 中添加:
'DATA_CACHE_TIME' => '3600',
指定默认的缓存时长为3600 秒; 再运行,错误没有了,缓存成功!
另外,需要在某个action里清除所有缓存的时候可以这样实现:
$cache = Cache::getInstance(); $cache ->clear();
相关推荐
-
ThinkPHP缓存方法S()概述
thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象.S()缓存方法支持有效期,又称动态缓存方法,使用示例如下: 复制代码 代码如下: // 使用data标识缓存$Data数据 S('data',$Data); //前面的是缓存标示,后面的是缓存的数据 复制代码 代码如下: // 缓存$Data数据3600秒 S('data',$Data,3600); 复制代码 代码如下: // 删除缓存数据 S('data',NULL); //第一个参数时缓存的标识名 复制代码 代码如
-
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
本文实例讲述了thinkPHP多域名情况下使用memcache方式共享session数据的实现方法.分享给大家供大家参考,具体如下: 一.问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的各个模块中都是可以登录使用的.各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可.但还存在一个问题,就是用户在这个服务器登录之
-
ThinkPHP实现一键清除缓存方法
很多的开源cms系统都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新,对此,我们就来实现一个ThinkPHP的清理缓存的功能.代码如下: ThinkPHP后台执行的代码: //获取要清楚的目录和目录所在的绝对路径 public function cache(){ ////前台用ajax get方式进行提交的,这里是先判断一下 if($_POST['type']){ //得到传递过来的值 $type=$_POST['type']; //将
-
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
系统默认的缓存方式是采用File方式缓存,我们可以在项目配置文件里面定义其他的缓存方式,例如,修改默认的缓存方式为Xcache(当然,你的环境需要支持Xcache) 对于File方式缓存下的缓存目录下面因为缓存数据过多而导致存在大量的文件问题,ThinkPHP也给出了解决方案,可以启用哈希子目录缓存的方式. 'DATA_CACHE_SUBDIR'=>true 还可以设置哈希目录的层次,例如 'DATA_PATH_LEVEL'=>2 就可以根据缓存标识的哈希自动创建多层子目录来缓存. S方法支持
-
ThinkPHP简单使用memcache缓存的方法
本文实例讲述了ThinkPHP简单使用memcache缓存的方法.分享给大家供大家参考,具体如下: Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件. 服务器装了memcached后想给更改成memecache方式 在Conf/config.php 中添加 'DATA_CACHE_TYPE' => 'Memcache', 'MEMCACHE_HOST' => 'tcp://127.0.0.1:11211', 'DATA_CACHE_TIME'
-
thinkphp的静态缓存用法分析
本文较为详细的分析了thinkphp的静态缓存用法.分享给大家供大家参考.具体分析如下: thinkphp里面内置了一个静态缓存功能,说静态缓存可能对我这种菜鸟而言不太好理解.其实静态缓存就是将THINKphp的某一个操作显示出来的页面生成一个HTML文件保存在设置的路径,当用户再次访问的时候,如果缓存没过期,那么这个操作将不再执行它下面的PHP程序,而是直接调用生成的HTML缓存文件.要使用静态缓存就需要在项目配置目录__APP__/Conf下面增加静态缓存规则文件 htmls.php,还需要
-
thinkphp中memcache的用法实例
本文实例讲述了thinkphp中memcache的用法.分享给大家供大家参考.具体分析如下: 1.下载并安装memcache ① window下安装memcache. 下载memcached.exe 到d:/memcached/memcached.exe.在运行cmd 输入 d:/memcached/memcached.exe -d install安装 . ② 运行d:/memcached/memcached.exe -d start 启动memcache ③ 下载
-
thinkPHP实现MemCache分布式缓存功能
本文实例讲述了thinkPHP实现MemCache分布式缓存功能.分享给大家供大家参考,具体如下: 两天在研究MemCache分布式缓存的问题时,发现ThinkPHP其实并不支持分布式缓存功能,这可以从官方提供的CacheMemcache.class.php文件中看到: if(empty($options)) { $options = array ( 'host' => '127.0.0.1', 'port' => 11211, 'timeout' => false, 'persiste
-
采用ThinkPHP中F方法实现快速缓存实例
一般使用文件方式的缓存就能够满足要求,而thinkPHP还提供了一个专门用于文件方式的快速缓存方法F方法.由于采用的是PHP返回方式,所以其效率较S方法较高. F方法具有如下特点: 1.简单数据缓存:2.文件形式保存:3.采用PHP返回数据方式加载缓存:4.支持子目录缓存以及自动创建:5.支持删除缓存和批量删除: 复制代码 代码如下: $path="../Public/Runtime/";$str="fastrunaaaaaaaaaaaaaaaa";F("
-
thinkphp缓存技术详解
本文详细分析了thinkphp的缓存技术.分享给大家供大家参考.具体分析如下: 如果没有缓存的网站是百万级或者千万级的访问量,会给数据库或者服务器造成很大的压力,通过缓存,大幅减少服务器和数据库的负荷,假如我们把读取数据的过程分为三个层,第一个是访问层,第一个是缓存层,第三个是数据库存取层,如果没有缓存层,访问层是直接从数据库存取层读取数据,而设置缓存后,访问层不再是直接在数据库存取层读取,而是从缓存层读取数据. 我们做个简单的对比,假设一个页面,在一个小时可被访问100万次,如果这个页面每次被
随机推荐
- Underscore.js 1.3.3 中文注释翻译说明
- vbscript ms owc 封裝代码
- 用VBS获取Unix时间戳的函数代码
- 使用 iisext.vbs 添加应用程序依存关系的实现方法
- python查找目录下指定扩展名的文件实例
- VC++时钟函数
- iOS开发中对文件目录的访问及管理的基本方法小结
- javascript静态页面传值的三种方法分享
- Ajax请求中async:false/true的作用分析
- ie7+背景透明文字不透明超级简单的实现方法
- Java中使用Jedis操作Redis的示例代码
- jQuery.ajax向后台传递数组问题的解决方法
- awk中实现ord函数功能
- SQL SERVER2012中新增函数之字符串函数CONCAT详解
- 看了很惊讶的兹罗列194种创意线索
- 比较完整的android MP3 LRC歌词滚动高亮显示(附源码)
- 用代码更新你的jar包
- C#百万数据查询出现超时问题的解决方法
- 使用javascript为网页增加夜间模式
- php 获取一个月第一天与最后一天的代码