Linux下编译按装memcache分布式环境(笔记)
Linux下编译按装memcache分布式环境(笔记)
@author 流水孟春 121169238(at)qq.com
Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent(如果你的系统已经安装了libevent,可以不用安装)
memcached: http://www.danga.com/memcached/
libevent: 到chinaunix.net搜索下载
memcache : http://pecl.php.net/package/memcache
1) 先安装libevent:
# tar zxvf libevent-x.x.tar.gz
# cd libevent-x.x
# ./configure --prefix=/usr
# make
# make install
2) 安装memcached
# tar zxvf memcached-memcached-1.2.3.tar.gz
# cd memcached-memcached-1.2.3
# ./configure --prefix=/usr/local --with-libevent=/usr
# make
# make install
启动memcached
# /usr/local/bin/memcached -d -m 2048 -l 172.18.19.250 -p 11211 -u system_u
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,
-u是运行Memcache的用户,我这里是system_u,
-l是监听的服务器IP地址,如果有多个地址的话,可以用多个 -l YOU_IP
-p是设置Memcache监听的端口,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件
如果要结束Memcache进程,执行:
用# ps -e 查看进程
# kill pid memcached的进程号
运行后有些系统还会提示-bash: kill: pid: arguments must be process or job IDs
,但是用# ps -e查看进程,已经没有memcached的进程了。
3) 客户端
# 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 install
需要在php.ini(vi /etc/php.ini)文件中相应的位置加入:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20060613/"
extension=memcache.so
启动memcached
重启apache
用手册中的例子拿来测试
<下面copy http://blog.youkuaiyun.com/chinalinuxzend/archive/2007/10/06/1812591.aspx>
应用:
1.分布式共享数据
《实现基于Memcache存储的Session类》这篇文章是模拟了php对session管理的方法,用setcookie模拟PHPSESS ID,用memcache存储数据。
http://blog.youkuaiyun.com/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表的方式解决这个问题.
@author 流水孟春 121169238(at)qq.com
Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent(如果你的系统已经安装了libevent,可以不用安装)
memcached: http://www.danga.com/memcached/
libevent: 到chinaunix.net搜索下载
memcache : http://pecl.php.net/package/memcache
1) 先安装libevent:
# tar zxvf libevent-x.x.tar.gz
# cd libevent-x.x
# ./configure --prefix=/usr
# make
# make install
2) 安装memcached
# tar zxvf memcached-memcached-1.2.3.tar.gz
# cd memcached-memcached-1.2.3
# ./configure --prefix=/usr/local --with-libevent=/usr
# make
# make install
启动memcached
# /usr/local/bin/memcached -d -m 2048 -l 172.18.19.250 -p 11211 -u system_u
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,
-u是运行Memcache的用户,我这里是system_u,
-l是监听的服务器IP地址,如果有多个地址的话,可以用多个 -l YOU_IP
-p是设置Memcache监听的端口,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件
如果要结束Memcache进程,执行:
用# ps -e 查看进程
# kill pid memcached的进程号
运行后有些系统还会提示-bash: kill: pid: arguments must be process or job IDs
,但是用# ps -e查看进程,已经没有memcached的进程了。
3) 客户端
# 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 install
需要在php.ini(vi /etc/php.ini)文件中相应的位置加入:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20060613/"
extension=memcache.so
启动memcached
重启apache
用手册中的例子拿来测试
<下面copy http://blog.youkuaiyun.com/chinalinuxzend/archive/2007/10/06/1812591.aspx>
应用:
1.分布式共享数据
《实现基于Memcache存储的Session类》这篇文章是模拟了php对session管理的方法,用setcookie模拟PHPSESS ID,用memcache存储数据。
http://blog.youkuaiyun.com/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表的方式解决这个问题.