文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>memcached安装使用手记

memcached安装使用手记

时间:2010-05-26  来源:xhq6632

因为业务需要,要对数据库查询记录进行缓存,当然除了mysql自身的缓存之外的东西了。 很早以前就研究过,那个memcached,但是一直没有机会实际操作一下。 这下,好了,有机会,亲密接触一下了。 呵呵   如果还不知道这个是做什么用的,先去搜索一下吧。 也可以到官网看看:http://www.danga.com/memcached/   在安装之前,需要几个软件包 libevent http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz   memcached http://www.danga.com/memcached/dist/memcached-1.2.6.tar.gz   前两个是必须的,至于第三个,看你了,因为我的要用在PHP客户端访问,所以安装了这个 memcache http://pecl.php.net/get/memcache-2.2.4.tgz     下面简要说明一下,安装过程吧。   首先安装libevent tar zxvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable
./configure --prefix=/usr
make && make install
  然后再安装 tar zxvf memcached-1.2.6.tar.gz
cd memcached-1.2.6
./configure --prefix=/usr/local
make && make install
    安装完成之后,就可以直接运行测试一下   可以直接给出程序路径,也可以直接运行(当然你的系统已经加载路径的情况下) /usr/local/bin/memcached -u wwwrun 我用的WEB系统的默认用户来运行的   不要关闭这个运行的窗口,另外开一个窗口, 执行如下命令: telnet localhost 11211 注:其中11211是memcached运行的默认端口,当然你也可以用其它端口来运行 出现如下窗口 执行查看状态命令stats,看看当前状态如何。 我这个窗口是运行了一段时间的效果。     查看Memcached帮助信息,可以使用如下命令 /usr/local/bin/memcached -h     选项说明
-p <num> 监听的TCP端口 (缺省: 11211)
-d 以守护进程方式运行Memcached
-u <username> 运行Memcached的账户,非root用户
-m <num> 最大的内存使用, 单位是MB,缺省是 64 MB
-c <num> 软连接数量, 缺省是 1024
-v 输出警告和错误信息
-vv 打印客户端的请求和返回信息
-h 打印帮助信息
-i 打印memcached和libevent的版权信息
      刚才那个运行,一旦窗口关闭,程序就关闭了,要想让它运行在后台,可以选择-d选项   来了一个通用运行参数吧   /usr/local/bin/memcached -p 11211 -d -u wwwrun -m 2048 -c 1024 -vvv 我的机器配置比较高是16G内存,所以叫内存不珍贵,用了2G,呵呵   下面再说一下,PHP调用的安装和配置吧   tar zxvf memcache-2.2.4.tgz
cd memcache-2.2.4
/usr/bin/phpize
./configure --with-php-config=/usr/bin/php-config
make && make install
注:这个地方,PHP的安装路径很重要,每个系统的PHP安装位置可能有点变化,不同的安装方式也会不一样
如果你确实不知道安装在哪儿了。
可以去查找一下。
也可以使用whereis php
之类的命令帮助你快速找到它的位置
  安装完成之后,要让你的apache认到它,就需要修改php.ini对应的设置 又是不同的环境,配置不一样了。 我的是suse 10.2 系统默认安装位置在 /etc/php5/apache2/php.ini   另外,这个PHP配置跟一般还有点区别,就是,它的配置通常不是直接修改php.ini这个文件 我在/etc/php5/conf.d/目录中发现很多配置文件 就在这个目录下,随便复制了一个文件,将它重命名为memcache.ini 然后,修改了,里面内容为:extension=memcache.so   重新启动apache, 用php -m 发现已经生效了,有这个模块了。   现在可以来体验一下了。       <?php
//连接Memcache
$mem = new Memcache;
$mem->connect("localhost", 11211);
//保存数据
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."<br>";
//替换数据
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br>";
//保存数组数据
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br>";
//删除数据
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br>";
//清除所有数据
$mem->flush();
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br>";
//关闭连接
$mem->close();
?>
  memcached支持分布式的体验   /usr/local/bin/memcached -p 11211 -d -u wwwrun -m 2048 -c 1024 -vvv /usr/local/bin/memcached -p 11311 -d -u wwwrun -m 2048 -c 1024 -vvv /usr/local/bin/memcached -p 11411 -d -u wwwrun -m 2048 -c 1024 -vvv   可以同时运行多个哟。   而且有特别算法,自动连接到服务端,客户端不需要特别操作。     <?php
//连接Memcache
$mem = new Memcache;
$mem->addServer("localhost", 11211);
$mem->addServer("localhost", 11311);
$mem->addServer("localhost", 11411);
//保存数据
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."<br>";
  $mem->set('key2', 'This is first value', 0, 60);
$va2 = $mem->get('key2');
echo "Get key2 value: " . $va2 ."<br>";

//保存数组数据
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key3', $arr, 0, 60);
$va3 = $mem->get('key3');
echo "Get key3 value: ";
print_r($va3);
echo "<br>";
//删除数据
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br>";
//关闭连接
$mem->close();
?>
实际上Key1保存在11211端口机器 Key2保存在11311端口机器上 Key3保存在11411端口机器上  
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载