关闭

Memcached的介绍和应用

1068人阅读 评论(0) 收藏 举报
原贴:http://www.kakapo.cn/blog/read.php?95

Memcached的介绍和应用

[不指定 2007/04/19 23:27 | by kakapo ]
基础知识:
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表的方式解决这个问题.
Tags:
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3163806次
    • 积分:33264
    • 等级:
    • 排名:第146名
    • 原创:76篇
    • 转载:1209篇
    • 译文:0篇
    • 评论:200条
    最新评论
    牛逼的网站