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

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的缓存机制



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值