Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2060163
  • 博文数量: 178
  • 博客积分: 2076
  • 博客等级: 大尉
  • 技术积分: 2800
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-10 10:50
文章分类

全部博文(178)

文章存档

2010年(4)

2009年(13)

2008年(161)

我的朋友

分类: LINUX

2008-10-25 10:47:46

memcached


memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。起初作者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统, 这种方法不仅解决了共享内存只能是单机的弊端, 同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度!基于memcached作者对分布式cache的理解和解决方案。
 
 

php 优化一之memcached安装配置


摘要:由于数据库存储的数据量越来越大,查询速度也就变的越来越慢,因此就有了缓存服务器应用的必要,本文是介绍Memcached的安装以及简单的使用
本文只介绍memcached的PHP的API,想查看其他关于Memcached的API文档案,请访问


1、安装Memcached
2、安装memcache PHP模块
3、测试脚本



一、环境需求
安装Memcached需要libevent库的支持,所以请在安装Memcached之前检查有没有安装libevent。测试环境还需要PHP的支持,本文假设PHP已经安装到/usr/local/php目录下,也就是在编译PHP的时候使用perfix参数指定目录(--prefix= /usr/local/php)

二、下载相关软件
Memcached下载地址
memcache PHP模块下载地址 推荐使用1.5版
libevent 下载地址

# tar vxzf libevent-1.1a.tar.gz
# cd libevent-1.1a
# ./configure
# make
# make install
建立一个符号连接:#ls -s /usr/local/lib/libevent-1.1.so.1 /usr/lib
2、安装Memcached
# tar vxzf memcached-1.1.12.tar.gz
# cd memcached-1.1.12
# ./configure --prefix=/usr/local/memcached
--with-libevent=/usr
# make
# make install

# cd /usr/local/php/modules/memcached/bin
# ./memcached -d -m 50 -p 11211 -u root
参数说明 -m 指定使用多少兆的缓存空间;-p 指定要监听的端口; -u 指定以哪个用户来运行
 
对于这个BLOG文章:
     php 以php-fcgi模式 make install 不用安装 memecached服务端,是不是php-cgi不用安装服务器端即可??????????
  编译安装PHP(FastCGI模式)
tar zxvf php-5.2.6.tar.gz
gzip -cd php-5.2.6-fpm-0.5.9.diff.gz | patch -d php-5.2.6 -p1
cd php-5.2.6/
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl
sed -i 's#-lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt#& -liconv#' Makefile
make
make install
cp php.ini-dist /usr/local/webserver/php/etc/php.ini
cd ../



  编译安装PHP5扩展模块
tar zxvf memcache-2.2.3.tgz
cd memcache-2.2.3/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../

tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3/
/usr/local/webserver/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../
 

3、安装memcache PHP模块

# tar vxzf memcache-2.0.4.tgz
# cd memcache-2.0.4
# /usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config
--with-apxs=/usr/local/apache/bin/apxs
--with-gettext
--enable-socket
--enable-memcache
--enable-sysvshm
--enable-shmop


# make
# make install

然后修改php.ini

extension_dir = "./"
修改为
extension_dir = "/usr/local/php/lib/php/extensions/"
并添加一行
extension=memcache.so
3、测试脚本
$memcache = new Memcache; //创建一个memcache对象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器
$memcache->set('key', 'test'); //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get('key'); //从内存中取出key的值
echo $get_value;
?>
 
 
 
++++++++++++++
[Tips]Memcache支持线程    

我读代码读出来的,对应的版本是 memcached-1.2.2 ,大致要支持多线程,在安装的时候必须打开:
./configure --enable-threads
安装完之后,启动的时候看看帮助信息有没有这条:
-t        number of threads to use, default 4
如果有,说明已经支持了线程,就可以在启动的时候使用 -t 选项来启动多线程
然后启动的时候必须加上你需要支持的线程数量:
/usr/local/memcache/bin/memcached -t 1024
阅读(449) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~