您的位置:首页 > 其它

内存缓存__DiscuzX2.0缓存的用法与缓存机制解析[调用与更新缓存]系列二

2012-11-17 16:19 766 查看
DiscuzX2.0缓存的用法与缓存机制解析[调用与更新缓存]系列二

 

重点介绍memcache内存缓存功能以及用法

 

开启服务器端

下载Memcached.exe 放入D:\Memcached目录

-------------------------------------------------------------

cmd命令提示符

安装:memcached.exe -d install

启动:memcached.exe -d start

安装好了,任务管理器可以看到一个memcached的进程,通过netstat -an命令查看

TCP    127.0.0.1:11212        0.0.0.0:0              LISTENING

11211端口被打开,监听中

 

停止:memcached.exe -d stop 或 memcached.exe -d shutdown

卸载:memcached.exe -d uninstall

 

推荐使用下面的命令(可以指定IP地址和端口)

D:\Memcached>sc create memcached binPath= "D:\Memcached\memcached.exe -p 9999 -l 127.0.0.1 -m 128 -d runservice" DisplayName=
"memcached server" start= auto depend= TCPIP


 

其中 -d runservice 为启动Windows服务

启动服务:net start memcached server

安装好了,任务管理器可以看到一个memcached的进程,通过netstat -an命令查看

TCP    127.0.0.1:9999         0.0.0.0:0              LISTENING

---------------------------------------------------------------

 

开启客户端

下载php_memcache.dll 放入到 \php\ext\ 目录里

在php.ini配置文件中的扩展,加入下面一条

extension=php_memcache.dll

 

phpinfo() 查看有没有memcache信息



memcache.chunk_size 

数据将会被分成指定大小(chunk_size)的块来传输,这个值(chunk_size)越小,写操作的请求就越多,如果发现其他的无法解释的减速,请试着将这个值增大到32768.

 

测试代码如下

 

$mem = new Memcache;

$mem->connect('127.0.0.1', 9999) or die ("Could not connect");

 

$obj=new stdClass;

$obj->name='秦迷空间';

$obj->domain='rczjp.cn';

$obj->curtime=time();

echo "写入的信息:\n";

var_dump($obj);

$mem->set('qinmi', $obj, false, 4) or die ("写入失败");//将信息存入Cache中,4秒后过期

 

sleep(2);

echo "2秒后获取Cache中的信息\n";

$get_result = $mem->get('qinmi');

var_dump($get_result);

echo $get_result->name."\n";

 

sleep(2);

echo "4秒后Cache过期,获取不到\n";

$get_result = $mem->get('qinmi');

var_dump($get_result);

 

输出结果

 

写入的信息:

object(stdClass)#5 (3) {

  ["name"]=>

  string(8) "秦迷空间"

  ["domain"]=>

  string(8) "rczjp.cn"

  ["curtime"]=>

  int(1301291388)

}

2秒后获取Cache中的信息

object(stdClass)#6 (3) {

  ["name"]=>

  string(8) "秦迷空间"

  ["domain"]=>

  string(8) "rczjp.cn"

  ["curtime"]=>

  int(1301291388)

}

秦迷空间

4秒后Cache过期,获取不到

bool(false)

 

其他

show status like 'qcache%';

 

SQL缓存

SELECT SQL_CACHE * FROM qinmi_common_syscache;

SELECT /*!40001 SQL_CACHE */ * FROM qinmi_common_syscache;

SQL不缓存

SELECT SQL_NO_CACHE * FROM qinmi_common_syscache;

SELECT /*!40001 SQL_NO_CACHE */ * FROM qinmi_common_syscache;

 

 

好了,关键的内存缓存就是这样实现的,好处大家都知道就是提高效率,下个系列就详细介绍Discuz2.0的缓存机制
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  discuz缓存
相关文章推荐