php缓存机制 Memcache for Windows 安装与应用

  安装部分

1.下载Memcache for win32

下载地址: http://jehiah.cz/projects/memcached-win32/

2.下载php_memcache.dll

下载地址: http://pecl4win.php.net/ext.php/php_memcache.dll
Note:注意你安装的PHP版本来下载相应的dll文件.(我装的是5.2X版本).
1. 下载 memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached
2. 在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装
3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.下载 php_memcache.dll,请自己查找对应的php版本的文件
5. 在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
7.编辑php.ini文件

; Memcache extension
extension=php_memcache.dll

memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
第 1 行将加载 Memcache 扩展。其他四行是用于控制扩展的参数。按顺序,从顶部到底部:

memcache.allow_failover

一个布尔值,用于控制当连接出错时 Memcache 扩展是否故障转移到其他服务器上。默认值为
1
(true)。

memcache.max_failover_attempts

一个整型值,用于限制连接到持久性数据或检索数据的服务器数目。如果
memcache.allow_failover
为 false,则将忽略此参数。默认值为
20

memcache.chunk_size

一个整型值,用于控制数据传输的大小。默认值为
8192
字节 (8 KB),但是如果设置为
32768
(32 KB),则可以获得更好的性能。

memcache.default_port

另一个整型值,用于设置连接到 Memcache 所使用的 TCP 端口。除非您修改它,否则默认值为无特权的高端口
11211

 

8.装php_memcache.dll放入到你的扩展文件目录中.一般是php安装目录的ext目录下.

9.重启Apache.打开phpinfo();

●Win下改变memcache大小的方法:
1.打开注册表,运行=>regiedit
2.定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server,找ImagePath项,值应该为” “E:\Program Files\Memcached_1.2.5\memcached.exe” -d runservice”,在后面添加-m 100,即可将其内存大小调整为100M,如” “E:\Program Files\Memcached_1.2.5\memcached.exe” -d runservice –m 100”
3.重启memcache服务即可生效
●ASP.Net下的Memcache Client:
建议使用EnyimMemcached,使用beitmemcached时,多服务器使用会有问题,这东西搞了我很久

如果能找到如上信息.表示安装成功.

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

应用部分

1.主要方法

(1) Memcache::getVersion 返回memcache的版本信息.

(2) Memcache::connect 创建一个memcache连接对象.

(3) Memcache::pconnect 创建一个memcacher持久连接对象.

(4) Memcache::close 关闭一个Memcache对象.

(5) Memcache::set 用来添加一个值.
有四个参数,第一个参数是key,第二个参数是value,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设置一个过期自动销毁的时间.

(6) Memcache::add 作用和Memcache::set方法类似.
两个方法的区别是如果Memcache::add方法的返回值为false,表示这个key已经存在,而Memcache::set方法则会直接覆写.

(7) Memcache::get 用来获取一个值.
只有一个参数(key,在Memcache::set时设置)

(8) Memcache::replace 对一个已有的key进行覆写操作.
有四个参数,与 Memcache::set 相同.

(9) Memcache::increment 对保存的某个key中的值进行加法操作.

(10) Memcache::decremen 对保存的某个key中的值进行减法操作.

(11) Memcache::setCompressThreshold 对大于某一大小的数据进行压缩。

(12) Memcache::delete 删除一个key
有两个参数,第一个是key名称.第二个是删除延迟时间

(13) Memcache::flush 清除所有缓存的数据,但是不会削去使用的内存空间.

(14) Memcache::addServer 添加一个可供使用的服务器地址.

(15) Memcache::setServerParams 在运行时修改服务器的参数.

2.附一个简单的例子:

代码:

 

<?php
    $memcache = new Memcache;//实例化 memcache对象
    $memcache->connect('127.0.0.1',11211) or die ("Memcache could not connect"); //创建一个memcache连接对象
    $sql = "select * from tableName";//SQL语句
    $key = md5($sql); //设置唯一键值
    if(!($memcache->get($key)))//如果没有获取到相应的key值.则对数据库进行查询操作
    {
           mysql_connect('127.0.0.1','root','');
           mysql_select_db('databaseName');   //平常的数据库连接操作.
           $rt = mysql_query($sql);//执行SQL语句
            while($row = mysql_fetch_array($rt))
            {
                $datas[] = $row;//将记录集保存在数组中
            }
            $memcache->set($key,$datas,MEMCACHE_COMPRESSED);//将数组存入key中
            unset($datas);//删除数组
    }
    var_dump($memcache->get($key));//输出测试
?>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值