原贴:http://www.kakapo.cn/blog/read.php?95
Memcached的介绍和应用
[
2007/04/19 23:27 | by
kakapo ]
![不指定 不指定](http://www.kakapo.cn/blog/images/weather/blank.gif)
基础知识:
Memcache的使用和协议分析详解
http://hi.baidu.com/_1_1_1_1/blog/item/2a0819b3ed9a07a6d8335a7d.html
MemCached的PHP客户端操作类一
http://blog.csdn.net/heiyeshuwu/archive/2006/07/07/890078.aspx
Memcached window版本
http://jehiah.cz/projects/memcached-win32/
PHP & memcached
http://nio.infor96.com/php-memcached/
安装:
搭建memcache分布式环境需要三个软件包,目前统一软件包的版本为:libevent-1.1b.tar.gz,memcache-2.1.0.tgz,memcached-1.1.13.tar.gz.
1) 先安装libevent:
# tar zxvf libevent-1.1b.tar.gz
# cd libevent-1.1b
# ./configure --prefix=/usr
# make >make.log 2>&1
# sudo make install >install.log 2>&1
确认
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 22 Jan 9 13:34 libevent-1.1b.so.1 -> libevent-1.1b.so.1.0.2
-rwxr-xr-x 1 root root 91205 Jan 9 13:34 libevent-1.1b.so.1.0.2
-rw-r--r-- 1 root root 121472 Jan 9 13:34 libevent.a
-rwxr-xr-x 1 root root 808 Jan 9 13:34 libevent.la
lrwxrwxrwx 1 root root 22 Jan 9 13:34 libevent.so -> libevent-1.1b.so.1.0.2
2)再安装memcached:
# tar zxvf memcached-1.1.13.tar.gz
# cd memcached-1.1.13
# ./configure --prefix=/usr/local --with-libevent=/usr
# make >make.log 2>&1
# sudo make install >install.log 2>&1
启动
# /usr/local/bin/memcached -d -m 512 -l 10.68.1.31 -p 11211 -u www
3)最后安装memcache的php客户端,这个在每个需要用到memcache服务的机器上都需要安装,memcache的php客户端是以php extension的方式安装的.
# tar zxvf memcache-2.1.0.tgz
# cd memcache-2.1.0
# /usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
# make >make.log 2>&1
# sudo make install >install.log 2>&1
需要在php.ini文件中相应的位置加入:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/"
extension=memcache.so
应用:
1.分布式共享数据
《实现基于Memcache存储的Session类》这篇文章是模拟了php对session管理的方法,用setcookie模拟PHPSESS ID,用memcache存储数据。
http://blog.csdn.net/heiyeshuwu/archive/2006/12/24/1457206.aspx
http://wf.xplore.cn/read.php/91.htm
下面这篇文章是利用了session_set_save_handler方法,重写open,write,read,close,destory,gc方法,将session数据存储在memcache。
《PHP实现多服务器session共享之memcache共享》
http://imysql.cn/?q=node/215
总结:都是基于Cookie确认的。只能在同域名下共享session。第二篇文章使用起来更方便。用户只要正常使用php 的session管理函数就行了。
2.数据库检索结果的缓存
Memcached在大型网站中应用 [原创]
http://tomore.myoow.com/showlog351.html
优点和缺点:
memcached部分实现的是内存空间分配和回收,以及存储服务监听和提供.对于分布式的实现,取决于客户端的使用和构造.我们使用的客户端是完全支持分布式的.只是可能会出现某些问题.
诸如一旦出现网络问题, 网络问题导致某个分布式服务器中的一台失去联系之后,到这台机器恢复正常工作的这段时间内, 写入分布式服务器的数据将基本不可以获取. 可以通过采用分布式hash表的方式解决这个问题.
Memcache的使用和协议分析详解
http://hi.baidu.com/_1_1_1_1/blog/item/2a0819b3ed9a07a6d8335a7d.html
MemCached的PHP客户端操作类一
http://blog.csdn.net/heiyeshuwu/archive/2006/07/07/890078.aspx
Memcached window版本
http://jehiah.cz/projects/memcached-win32/
PHP & memcached
http://nio.infor96.com/php-memcached/
安装:
搭建memcache分布式环境需要三个软件包,目前统一软件包的版本为:libevent-1.1b.tar.gz,memcache-2.1.0.tgz,memcached-1.1.13.tar.gz.
1) 先安装libevent:
# tar zxvf libevent-1.1b.tar.gz
# cd libevent-1.1b
# ./configure --prefix=/usr
# make >make.log 2>&1
# sudo make install >install.log 2>&1
确认
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 22 Jan 9 13:34 libevent-1.1b.so.1 -> libevent-1.1b.so.1.0.2
-rwxr-xr-x 1 root root 91205 Jan 9 13:34 libevent-1.1b.so.1.0.2
-rw-r--r-- 1 root root 121472 Jan 9 13:34 libevent.a
-rwxr-xr-x 1 root root 808 Jan 9 13:34 libevent.la
lrwxrwxrwx 1 root root 22 Jan 9 13:34 libevent.so -> libevent-1.1b.so.1.0.2
2)再安装memcached:
# tar zxvf memcached-1.1.13.tar.gz
# cd memcached-1.1.13
# ./configure --prefix=/usr/local --with-libevent=/usr
# make >make.log 2>&1
# sudo make install >install.log 2>&1
启动
# /usr/local/bin/memcached -d -m 512 -l 10.68.1.31 -p 11211 -u www
3)最后安装memcache的php客户端,这个在每个需要用到memcache服务的机器上都需要安装,memcache的php客户端是以php extension的方式安装的.
# tar zxvf memcache-2.1.0.tgz
# cd memcache-2.1.0
# /usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
# make >make.log 2>&1
# sudo make install >install.log 2>&1
需要在php.ini文件中相应的位置加入:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429/"
extension=memcache.so
应用:
1.分布式共享数据
《实现基于Memcache存储的Session类》这篇文章是模拟了php对session管理的方法,用setcookie模拟PHPSESS ID,用memcache存储数据。
http://blog.csdn.net/heiyeshuwu/archive/2006/12/24/1457206.aspx
http://wf.xplore.cn/read.php/91.htm
下面这篇文章是利用了session_set_save_handler方法,重写open,write,read,close,destory,gc方法,将session数据存储在memcache。
《PHP实现多服务器session共享之memcache共享》
http://imysql.cn/?q=node/215
总结:都是基于Cookie确认的。只能在同域名下共享session。第二篇文章使用起来更方便。用户只要正常使用php 的session管理函数就行了。
2.数据库检索结果的缓存
Memcached在大型网站中应用 [原创]
http://tomore.myoow.com/showlog351.html
优点和缺点:
memcached部分实现的是内存空间分配和回收,以及存储服务监听和提供.对于分布式的实现,取决于客户端的使用和构造.我们使用的客户端是完全支持分布式的.只是可能会出现某些问题.
诸如一旦出现网络问题, 网络问题导致某个分布式服务器中的一台失去联系之后,到这台机器恢复正常工作的这段时间内, 写入分布式服务器的数据将基本不可以获取. 可以通过采用分布式hash表的方式解决这个问题.