memcached php-memcache 的安装和使用
时间:10-02
整理:3721RD
点击:
一. Linux 下安装
1. 首先是下载memcached 了,目前最新版本是 1.2.1,直接从官方网站即可下载到memcached-1.2.1.tar.gz 。
除此之外,memcached 用到了 libevent ,我下载的是 libevent-1.3a.tar.gz。
memcached官方版本下载地址:http://www.danga.com/memcached/
libevent官方版本下载地址:http://monkey.org/%7Eprovos/libevent/
2. 接下来是分别将 libevent-1.3a.tar.gz 和 memcached-1.2.1.tar.gz 解开包、编译、安装:
我安装memcached 在 /usr/bin/memcached位置。
NOTE:如果 libevent 不是安装在 /usr 目录下,那么需要把 libevent-1.2a.so.1 拷贝/链接(ls -s /usr/local/lib/libevent-1.1.so.1 /usr/lib)到 /usr/lib 中,否则memcached 无法正常加载。运行以下命令来启动 memcached。
3. 运行 memcached 守护程序
运行 memcached 守护程序很简单,只需一个命令行即可,不需要修改任何配置文件(也没有配置文件给你修改 ):
#/usr/bin/memcached -d -m 128 -l 192.168.1.117 -p 11211 -u nobody
/usr/bin/memcached -d -m 128 -l 192.168.1.117 -p 11211 -u httpd
参数解释:
-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。
当然,还有其它参数可以用,man memcached 一下就可以看到了。
4. 编译PHP configure加上 –enable-memcache[=DIR] 选项。我以前都是静态安装 PHP模块,此次 安装memcache PHP模块采用动态模块(DSO)方式
memcache PHP模块下载地址:http://pecl.php.net/package/memcache
复制内容到剪贴板 代码: # tar -vxzf memcache-1.5.tgz
# cd memcache-1.5
# /usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
# make
# make install
安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/
把这个记住
然后修改php.ini
把
extension_dir = "./"
修改为
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"
并添加一行
extension=memcache.so
二. Windows 下安装
1. 下载memcache的windows版,解压放在E:\soft\memcached-1.2.1-win32
NOTE: memcached Windows版本下载地址:http://jehiah.cz/projects/memcached-win32/
新下载地址:memcached 1.2.1 for Win32 binaries
其它版本:http://code.jellycan.com/memcached/
2. 在终端下输入 'E:\soft\memcached-1.2.1-win32\memcached.exe -d install' 安装
3. 在终端下输入 'E:\soft\memcached-1.2.1-win32\memcached.exe -d start' 启动
NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。
4 Use the server, by default listening to port 11211
5. 下载pecl的模块包,解压缩后将其中的php_memcache.dll考到D:\php\ext 中
NOTE: php和pecl的版本要一致。
下载地址列表:http://downloads.php.net/pierre/
6. 在C:\WINDOWS\php.ini 加入一行 'extension=php_memcache.dll'
三. 使用方法:见PHP手册Memcache Functions
1. 首先是下载memcached 了,目前最新版本是 1.2.1,直接从官方网站即可下载到memcached-1.2.1.tar.gz 。
除此之外,memcached 用到了 libevent ,我下载的是 libevent-1.3a.tar.gz。
memcached官方版本下载地址:http://www.danga.com/memcached/
libevent官方版本下载地址:http://monkey.org/%7Eprovos/libevent/
2. 接下来是分别将 libevent-1.3a.tar.gz 和 memcached-1.2.1.tar.gz 解开包、编译、安装:
我安装memcached 在 /usr/bin/memcached位置。
- # tar -xzf libevent-1.3a.tar.gz
- # cd libevent-1.3a
- # ./configure --prefix=/usr
- # make
- # make install
- # cd ..
- # tar -xzf memcached-1.2.1.tar.gz
- # cd memcached-1.2.1
- # ./configure --prefix=/usr
- # make
- # make install
NOTE:如果 libevent 不是安装在 /usr 目录下,那么需要把 libevent-1.2a.so.1 拷贝/链接(ls -s /usr/local/lib/libevent-1.1.so.1 /usr/lib)到 /usr/lib 中,否则memcached 无法正常加载。运行以下命令来启动 memcached。
3. 运行 memcached 守护程序
运行 memcached 守护程序很简单,只需一个命令行即可,不需要修改任何配置文件(也没有配置文件给你修改 ):
#/usr/bin/memcached -d -m 128 -l 192.168.1.117 -p 11211 -u nobody
/usr/bin/memcached -d -m 128 -l 192.168.1.117 -p 11211 -u httpd
参数解释:
-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。
当然,还有其它参数可以用,man memcached 一下就可以看到了。
4. 编译PHP configure加上 –enable-memcache[=DIR] 选项。我以前都是静态安装 PHP模块,此次 安装memcache PHP模块采用动态模块(DSO)方式
memcache PHP模块下载地址:http://pecl.php.net/package/memcache
复制内容到剪贴板 代码: # tar -vxzf memcache-1.5.tgz
# cd memcache-1.5
# /usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
# make
# make install
安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/
把这个记住
然后修改php.ini
把
extension_dir = "./"
修改为
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"
并添加一行
extension=memcache.so
二. Windows 下安装
1. 下载memcache的windows版,解压放在E:\soft\memcached-1.2.1-win32
NOTE: memcached Windows版本下载地址:http://jehiah.cz/projects/memcached-win32/
新下载地址:memcached 1.2.1 for Win32 binaries
其它版本:http://code.jellycan.com/memcached/
2. 在终端下输入 'E:\soft\memcached-1.2.1-win32\memcached.exe -d install' 安装
3. 在终端下输入 'E:\soft\memcached-1.2.1-win32\memcached.exe -d start' 启动
NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。
4 Use the server, by default listening to port 11211
5. 下载pecl的模块包,解压缩后将其中的php_memcache.dll考到D:\php\ext 中
NOTE: php和pecl的版本要一致。
下载地址列表:http://downloads.php.net/pierre/
6. 在C:\WINDOWS\php.ini 加入一行 'extension=php_memcache.dll'
三. 使用方法:见PHP手册Memcache Functions
- 文件名称:e:/webroot/example.php
- [code]<?php
- $memcache = new Memcache;
- $memcache->connect('localhost', 11211) or die ("Could not connect");
- $version = $memcache->getVersion();
- echo "Server's version: ".$version."
- \n";
- /**
- * 原来就是基类。很多php程序员用它来传递一系列变量的值,而同时又懒得去创建一个自己的类。
- * 这个基类只能传递属性,而不能定义方法。因为,一旦类被实列化以后,就不能在添加方法了。
- * 再说的明白一点,这个stdClass就类似于C++里面的structur。
- * 你可以用它来存储很多变量属性,但是没有方法。就是这样。
- * stdClass is a default PHP object.
- */
- $tmp_object = new stdClass;
- $tmp_object->str_attr = 'test';
- $tmp_object->int_attr = 123;
- $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
- echo "Store data in the cache (data will expire in 10 seconds)
- \n";
- $get_result = $memcache->get('key');
- echo "Data from the cache:
- \n";
- var_dump($get_result);
- ?>
- Memcache::add - Add an item to the server
- Memcache::addServer - Add a memcached server to connection pool
- Memcache::close - Close memcached server connection
- Memcache::connect - Open memcached server connection
- memcache_debug - Turn debug output on/off
- Memcache::decrement - Decrement item's value
- Memcache::delete - Delete item from the server
- Memcache::flush - Flush all existing items at the server
- Memcache::get - Retrieve item from the server
- Memcache::getExtendedStats - Get statistics from all servers in pool
- Memcache::getStats - Get statistics of the server
- Memcache::getVersion - Return version of the server
- Memcache::increment - Increment item's value
- Memcache::pconnect - Open memcached server persistent connection
- Memcache::replace - Replace value of the existing item
- Memcache::set - Store data at the server
- Memcache::setCompressThreshold - Enable automatic compression of large values