php-memcached内存缓存的使用

在大型网站开发中,缓存的使用是必要的,它有效的减少了我们对数据库的访问从而提升网站速度。有时候我们会尝试自己编写缓存类,通过文件缓存来使网站速度加快。但是,文件缓存也是需要通过文件I/O来存取缓存数据,提升效果并不明显。所以推荐大家使用内存缓存—— memcached

一:理解内存缓存和memcached

1 : 什么是内存缓存?

 内存缓存是将数据存放到服务器的内存当中,存取速度极快。目前来说,内存缓存是最快的一种缓存,当然也有所说的寄存器,但是不太靠谱。

2:什么是memcached? 它的存取机制是什么?

memcached是一种软件,也是一种服务,和apache有点像,需要通过下载安装才能使用;

在memcached 中维护了一张大的hashtable表 ,该表是在内存,表的结构是key->value,我们以这个自定义的key值来保存我们的value数据,它几乎能存取所有类型(字符串,数组,数值,布尔,对象,二进制,null),但是他不能存储rescourse(资源)。

3:memcached的运行原理是怎样的?

首先浏览器发出请求道apache ,apache找到相应的php文件进行解析,php访问数据库之前,先在memcached遍历查找,如果存在相应的数据则直接反馈给浏览器,如果不存在

,就通过访问数据库反馈数据。


二:memcached的安装和使用

1:    安装并使用memcached

安装步骤

(1)   下载memcached软件

(2)   安装

进入cmd ,切换到 memcached.exe 文件所在目录

memcached.exe –d install

(3)   启动memcached

第一种,可以到服务点击启动

第二种, 命令行

memcached.exe –m 200MB –d start  【以deamon方式启动,默认64M】

 

如果你在启动时,win7启动不成功, 则可以使用如下方法

memcached.exe –p 端口号

使用netstat –an 如果看到 11211端口在监听,说明启动ok

2:如何使用php操作memcached?

(1)   把 php_memcache.dll 文件拷贝 php的ext 下 #这个是php对memcache的扩展,需要去网上下载。不同版本的php 所使用的 php_memcache.dll 的版本不一样

(2)   修改php.ini文件,加上一句 extension=php_memcache.dll #开启memcache扩展

加载 php_memcache.dll (该文件就是封装了一堆函数)

(3)   重新启动apache

(4)   写一段代码进行测试

<php

$mem = new Memcache();

$mem->connect('127.0.0.1,11211')  //第一个参数表示memcache服务的ip地址,第二个参数的代表memcache的端口号

$mem->add('key','test‘,MEMCACHE_COMPRESSED,60); //参数依次是 键、 值、数据压缩、缓存时间(如果是0则默认永久缓存)

echo $mem->get('key');

?>

运行此代码,如果浏览器显示test,则说明我们配置成功


三:memcached虽然是分布式的缓存服务器,但是,它的服务器端并没有分布的功能,各个memcached服务器相互之间也不会有通信共享,它的分布式完全是由客户端决定的,举例:

<php

$mem = new Memcache();

$mem->addServer('127.0.0.1',11211);

$mem->addServer('127.0.0.1',11212);

$mem->addServer('127.0.0.1',11213);

$mem->addServer('127.0.0.1',11214);

?>

 通过addServer()添加多个memcached服务器进行数据分布,我们不需要知道数据存在哪个服务器,也不需要知道从哪个服务器得到数据,memcached会自动帮你解决。

提示:在我们同时连接许多memcached服务器时,并不会立即去连接memcached服务, 而是通过计算,hash后才去决定连接哪个memcached服务,因此当你大量加入服务器到连接池,并没有多余开销,这点很强大

四:memcache的生命周期

从数据放入mem开始计时,直到时间到了,就销毁, 如果时间为0, 则表示不过期.

memcache的数据被销毁的情况如下:

1.      缓存时间到

2.      重启memcached服务

3.      重启memcached服务所在的机器

4.      delete / flush 销毁数据


PS:

memcache的内存缓存十分强大,通过php操作比较容易,具体操作函数大家可以自行查看资料。通过内存缓存技术,能使我们的网站更加迅速,也是大型网站开发必不可少的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值