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

由于是采用脚本安装的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.1,
5 -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 ?>
时间: 2024-11-25 05:41:38

linux下memcache的运用,和php结合小案例。的相关文章

Linux 下memcache安装及使用

memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.据说官方所说,其用户包括twitter.digg.flickr等,都是些互联网大腕呀.目前用memcache解决互联网上的大用户读取是非常流行的一种用法. ? Linux下Memcache服务器端的安装 服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 . 下载:http://www.danga.com/memcached/dist/memcached-1

Linux下Memcache服务器的安装

Linux下Memcache服务器的安装 环境需求: 安装Memcached需要libevent库的支持,所以请在安装Memcached之前检查有没有安装libevent.测试环境还需要PHP的支持,本文假设PHP已经安装到/usr/local/php目录下. 服务器端主要是安装memcache服务器端,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent. memcached下载地址:http://www.danga.com/memcached/

Linux下memcache的安装

memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.目前用memcache解决互联网上的大用户读取是非常流行的一种用法,在互联网企业中有着广泛的应用.?关于memcache的详细介绍,有兴趣的朋友请参考这篇文章:http://blog.csdn.net/xifeijian/article/details/219949411.下载memcache墙裂推荐官方下载(http://memcached.org/),目前为止,最新的下载版本是1.4.17,如图

Linux下memcache编译安装与基本使用

memcache是一套分布式的高速缓存系统,特点为key-value 存储 一.在 linux 编译安装memcache.redis等,需要 gcc,make,cmake,autoconf,libtool 等工具, 直接使用yum安装即可: yum install gcc make cmake autoconf libtool 二.下载官方源码: memcached依赖于libevent库,因此需要先安装 libevent,下载地址:http://libevent.org/ memcache官网

Linux下memcache的安装和启动

memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度.据说官方所说,其用户包括twitter.digg.flickr等,都是些互联网大腕呀.目前用memcache解决互联网上的大用户读取是非常流行的一种用法. 下载安装 下载了,我到了其官方(http://memcached.org/),目前最新的下载版本是1.4.5 还要再安装libevent这个软件,从官方(http://monkey.org/~provos/libevent/)下载,目前最新的稳定

Linux下的Memcache安装

Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 .下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3.(如果你的系统已经安装了libevent,可以不用安装)官网:http://ww

Linux下进程线程,Nignx与php-fpm的进程线程方式

1.进程与线程区别 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源. "进程——资源分配的最小单位,线程——程序执行的最小单位" 进程有独立的地

linux下打开chm文件的方法

windows中,通常情况下,chm文件可以使用系统自带的程序打开,但是linux就没有那么幸运了,那么,如何在linux下打开chm 文件呢?有小编来为您介绍介绍,本篇,小编以ubuntu环境为例 ctrl+alt+t 打开终端,输入sudo apt-get install xchm,这是一个轻巧的linux下chm文件阅读器,如图 有时候xchm文件并不能满足功能上的需求或者外观,下面小编再推荐一款软件,kchmviewer,  sudo apt-get install kchmviewer

linux下合并两个文件夹

Linux下目录的合并以及文件的覆盖案例: 有两个目录test和new,test目录下有目录和文件,new目录下有更改过的一些test下的目录和文件,以及一些新增的文件,现在对两个目录进行合并以及覆盖test下的旧文件 cp -frap new/* test/ 命令其实非常简单,解释下: -f  强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖) -r  递归复制,包含目录 -a  做一个备份,这里可以不用这个参数,我们可以先备份整个test目录 -p  保持新文件的属