码迷,mamicode.com
首页 > Web开发 > 详细

linux下memcache的运用,和php结合小案例。

时间:2015-08-26 01:29:54      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

 

由于是采用脚本安装的memache,所以软件的依赖关系我就不操心了,脚本已经帮我装好了和php的关联关系,实在是很省心。后续如果有需要,我会针对windows和linux各写一个安装和配置的说明,一来提高自己的水平,而来也给有需要的朋友们。

因此这次我将关注点放在memcache的配置以及php的操作上。

1.启动Memcache的服务器端:

如果是虚拟机的话,你的写的ip要能用ping 命令ping通。这样才可以使用。我刚开始就在上面浪费了许多时间。
# ./memcached -d -m 10 -u root -l 127.0.0.1  -p  12000  -c  256 -P /tmp/memcached.pid

1 -d选项是启动一个守护进程,
2 -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
3 -u是运行Memcache的用户,我这里是root,
4 -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址127.0.0.15 -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
6 -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
7 -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

memcache中的常量。

memcache中set(‘key’, ‘value’, 0, 60)

其中的0是MEMCACHE_COMPRESSED ,的值。

MEMCACHE_COMPRESSED (integer)

用于在 Memcache::set(), Memcache::add() 和 Memcache::replace()几个方法中指定是否对写入数据压缩。 

MEMCACHE_HAVE_SESSION (integer)   

1代表当前Memcache session处理器可用,其他为0

 

常用的几个方法:

Memcache::add()方法在缓存服务器之前不存在key时, 以key作为key存储一个变量var到缓存服务器。 同样可以使用函数memcache_add()

bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )

 

key

将要分配给变量的key。

var

将要被存储的变量。字符串和整型被以原文存储,其他类型序列化后存储。

flag

使用MEMCACHE_COMPRESSED标记对数据进行压缩(使用zlib)。

expire

当前写入缓存的数据的失效时间。如果此值设置为0表明此数据永不过期。你可以设置一个UNIX时间戳或 以秒为单位的整数(从当前算起的时间差)来说明此数据的过期时间,但是在后一种设置方式中,不能超过 2592000秒(30天)。

分割线后是我自己写的一个小的demo,简单说明memcache的用法。

关于memcache,用法实在是很简易。网上的资料也很多。下面这个网址可以参考下,写的很不错。

http://www.ccvita.com/259.html


 

 1 <?php
 2     header("content-type:text/html;charset=utf-8");
 3     
 4     //实例化Memcache类.初始化条件
 5     $memcache    =    new Memcache;
 6     $memcache -> connect(‘127.0.0.1‘, 12000);
 7 
 8     //初始化mysql服务.
 9     $link    =    @mysql_connect(‘127.0.0.1‘, ‘root‘, ‘123456‘, ‘test‘)or die(‘数据库连接失败‘.mysql_error());
10     mysql_select_db(‘test‘);
11     mysql_set_charset(‘utf8‘);
12 
13     //建立sql语句
14     $sql    =    ‘select * from user‘;
15     $key    =    md5($sql);
16 
17     if($memcache -> get($key)){
18         //memecache缓存区间
19         echo ‘我是读的memcache缓存‘;
20         $result    =    $memcache -> get($key);
21     }else{
22         //mysql区间
23         echo ‘我是读的mysql‘;
24         $handle    =    mysql_query($sql);
25         if($handle){
26             while($array = mysql_fetch_array($handle)){
27                 $result[]    =    $array;
28             }
29         }
30         mysql_close();                                              //关闭mysql资源
31         $memcache -> set($key, $result, MEMCACHE_COMPRESSED, 5);  //MEMCACHE_COMPRESSED是常量1. 缓存5秒
32     }
33 
34 
35     echo ‘<pre>‘;
36         print_r($result);
37     echo ‘</pre>‘;
38 
39     
40 
41 ?>

 

 

 

 

linux下memcache的运用,和php结合小案例。

标签:

原文地址:http://www.cnblogs.com/roverliang/p/4758990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!