在windows下使用memcached教程

[不指定 2010/08/12 10:45 | by xiaoyuwxz ]
在windows下使用memcached教程

一、php扩展的安装
下载地址:http://downloads.php.net/pierre/
下载合适所用php版本,解压出php_memcache.dll,并拷入php\ext目录。
修改php.ini
加入extension=php_memcache.dll
重启iis

二、memcached服务端的安装
下载地址:http://jehiah.cz/projects/memcached-win32/
如:memcached-1.2.1-win32.zip,并解压
把memcached.exe拷入指定位置,如d:\memcached
打开cmd,进入d:\memcached
memcached.exe -d install
memcached.exe -d start
这时候memcached就可以正常使用了。
默认启动为使用内存: 64M
如需自行加大内存需自行运行memcached
停掉安装的服务或卸载安装的服务,进入d:\memcached
memcached.exe -m 128
这样,memcached就可以使用128M内存了。这时候你会发现这个CMD窗口一直开着,并不能关闭,关闭窗口memcached程序也会退出。

解决方法:
下载RunHiddenConsole.exe,并拷入d:\memcached
RunHiddenConsole.exe memcached.exe -m 128

附:memcached的基本设置:

-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

附:php扩展中的配置信息


[Memcache]
; 一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,
; 它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。

; 是否在遇到错误时透明地向其他服务器进行故障转移。
memcache.allow_failover = On

; 接受和发送数据时最多尝试多少个服务器,只在打开memcache.allow_failover时有效。
memcache.max_failover_attempts = 20

; 数据将按照此值设定的块大小进行转移。此值越小所需的额外网络传输越多。
; 如果发现无法解释的速度降低,可以尝试将此值增加到32768。
memcache.chunk_size = 8192

; 连接到memcached服务器时使用的默认TCP端口。
memcache.default_port = 11211

; 控制将key映射到server的策略。默认值"standard"表示使用先前版本的老hash策略。
; 设为"consistent"可以允许在连接池中添加/删除服务器时不必重新计算key与server之间的映射关系。
;memcache.hash_strategy = "standard"; 控制将key映射到server的散列函数。默认值"crc32"使用CRC32算法,而"fnv"则表示使用FNV-1a算法。
; FNV-1a比CRC32速度稍低,但是散列效果更好。
;memcache.hash_function = "crc32"

;memcache也可以作为session的存储模块,具体参看:memcache PHP 的 session.save_handler.

本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com

监控memcached的使用情况

[不指定 2010/08/11 21:53 | by xiaoyuwxz ]
php程序中的加速有eaccerator、xcache、memcached,自从DZX开始支持使用memcached,越来越多的人使用memcached,今天要讲的是如何掌握memcached的内存使用状况。
前提是已安装好memcache的php扩展,并安装memcached服务程序,并且已经启动,正常工作。
一、从php官方下载memcache的扩展包,下载地址如下:
http://pecl.php.net/package/memcache
如我们下载:memcache-3.0.4.tgz
解压后得到:memcache.php
打开memcache.php,设置上帐号、密码、连接信息
$VERSION='$Id: memcache.php,v 1.1.2.3 2008/09/11 19:23:48 mikl Exp $';

define('ADMIN_USERNAME','memcache');   // Admin Username
define('ADMIN_PASSWORD','password');    // Admin Password
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);

$MEMCACHE_SERVERS[] = 'mymemcache-server1:11211'; // add more as an array
$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // add more as an array

如以上内容设置如下:

$VERSION='$Id: memcache.php,v 1.1.2.3 2008/09/11 19:23:48 mikl Exp $';

define('ADMIN_USERNAME','admin');   // 此处设置登录用户名
define('ADMIN_PASSWORD','123456');    // 此处设置登录用户密码
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);

$MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // 此处设置连接信息
#$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // 只使用一个进程,此处屏蔽,否则可以设置多个连接信息

保存后把memcache.php文件拷贝到网站目录里,在IE的地址里打开,输入用户名密码后就可以看到memcached的使用情况了。

如下图所示:


点击在新窗口中浏览此图片

memcached服务端安装脚本

[不指定 2010/07/08 11:31 | by xiaoyuwxz ]
自己写的一个简单的脚本,执行安装即可。转截请注明地址.

#!/bin/bash
clear
echo "--------------------memcached安装脚本,按任意键继续---------------------"
get_char()
  {
  SAVEDSTTY=`stty -g`
  stty -echo
  stty cbreak
  dd if=/dev/tty bs=1 count=1 2> /dev/null
  stty -raw
  stty echo
  stty $SAVEDSTTY
  }
  echo ""
  echo "安装memcached,连接并发数1024,内存64M,按任意键继续......"
  char=`get_char`

tar zxvf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure
make
make install
cd ../
echo "/usr/local/lib" >/etc/ld.so.conf.d/libevent-i386.conf
ldconfig
#默认安装在/usr/local/lib/

tar zxvf memcached-1.4.5.tar.gz
cd memcached-1.4.5
./configure --prefix=/web/memcached
make
make install
cd ../
#默认安装在/usr/local/bin/

#创建简单的memcache启动停止脚本(未有进程判断)
cat >>/memcached<#!/bin/bash

start(){
        echo "开始启动memcached ......"
        /web/memcached/bin/memcached -d -m 64 -u nobody -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
        echo "OK"
        }

stop() {
        echo "正在停止memcached ......"
        killall -9 memcached
        rm -f  /tmp/memcached.pid
        echo "OK"
        }

restart() {
        stop
        start
        }

case "" in
  start)
start
;;
  stop)
stop
;;
  restart)
stop
start
;;
*)
        echo $ "Usage: $0 {start|stop|restart}"
;;
esac
EOF
sed -i 's#""#"$1"#g' /memcached
chmod +x /memcached
/memcached start
cp -f memcache.php /home/wwwroot/htdocs/

sleep 1
echo "删除安装临时文件............."
rm -Rf libevent-1.4.13-stable
rm -Rf memcached-1.4.5


memcache.php内容为:

$mem = new Memcache;
$mem->connect("127.0.0.1",11211);
$mem->set('key', "This is tell you: memcached rum success!", 0, 60);
$val = $mem->get('key');
echo $val;
?>

memcached安装教程

[不指定 2010/07/08 11:23 | by xiaoyuwxz ]
一、memcached服务端的安装
1.安装前需要先安装libevent:
下载地址:
http://www.monkey.org/~provos/libevent/
安装 libevent-1.4.13-stable.tar.gz
#默认安装在/usr/local/lib/

2. memcached安装:
下载地址:
http://memcached.org/
安装 memcached-1.4.5.tar.gz
#默认安装在/usr/local/bin/

3.测试时候发现会出现以下错误信息:
/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
错误的原因是未在系统中注册Libevent. 解决方法如下:
vi /etc/ld.so.conf.d/libevent-i386.conf
输入:
/usr/local/lib/
最后不要忘了
ldconfig

4.CentOS Memcached运行
/web/memcached/bin/memcached -m 512 -u nobody -vv
会看到如下信息:
slab class   1: chunk size        80 perslab   13107
slab class   2: chunk size       104 perslab   10082
slab class   3: chunk size       136 perslab    7710
slab class   4: chunk size       176 perslab    5957
slab class   5: chunk size       224 perslab    4681
slab class   6: chunk size       280 perslab    3744
slab class   7: chunk size       352 perslab    2978
slab class   8: chunk size       440 perslab    2383
slab class   9: chunk size       552 perslab    1899
slab class  10: chunk size       696 perslab    1506
slab class  11: chunk size       872 perslab    1202
slab class  12: chunk size      1096 perslab     956
slab class  13: chunk size      1376 perslab     762
slab class  14: chunk size      1720 perslab     609
slab class  15: chunk size      2152 perslab     487
slab class  16: chunk size      2696 perslab     388
slab class  17: chunk size      3376 perslab     310
slab class  18: chunk size      4224 perslab     248
slab class  19: chunk size      5280 perslab     198
slab class  20: chunk size      6600 perslab     158
slab class  21: chunk size      8256 perslab     127
slab class  22: chunk size     10320 perslab     101
slab class  23: chunk size     12904 perslab      81
slab class  24: chunk size     16136 perslab      64
slab class  25: chunk size     20176 perslab      51
slab class  26: chunk size     25224 perslab      41
slab class  27: chunk size     31536 perslab      33
slab class  28: chunk size     39424 perslab      26
slab class  29: chunk size     49280 perslab      21
slab class  30: chunk size     61600 perslab      17
slab class  31: chunk size     77000 perslab      13
slab class  32: chunk size     96256 perslab      10
slab class  33: chunk size    120320 perslab       8
slab class  34: chunk size    150400 perslab       6
slab class  35: chunk size    188000 perslab       5
slab class  36: chunk size    235000 perslab       4
slab class  37: chunk size    293752 perslab       3
slab class  38: chunk size    367192 perslab       2
slab class  39: chunk size    458992 perslab       2
slab class  40: chunk size    573744 perslab       1
slab class  41: chunk size    717184 perslab       1
slab class  42: chunk size   1048576 perslab       1
<26 server listening (auto-negotiate)
<27 server listening (auto-negotiate)
<28 send buffer was 8388608, now 268435456
<29 send buffer was 8388608, now 268435456
<28 server listening (udp)
<29 server listening (udp)
<28 server listening (udp)
<29 server listening (udp)
<28 server listening (udp)
<29 server listening (udp)
<28 server listening (udp)
<29 server listening (udp)

memcached运行正常。


二、memcached的基本设置:
1、启动Memcached的服务器端:
/web/memcached/bin/memcached -d -m 64 -u nobody -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB
-u是运行Memcache的用户
-l是监听的服务器IP地址,IP地址127.0.0.1
-p是设置Memcache监听的端口,默认为11211
-c选项是最大运行的并发连接数,默认是1024
-P是设置保存Memcache的pid文件,/tmp/memcached.pid,这个选项加不加无所谓

2、如果要结束memcached进程,执行:

kill `cat /tmp/memcached.pid`
或者
killall -9 /web/memcached/bin/memcached

也可以启动多个守护进程,不过端口不能重复。

3、重启apache,service httpd restart

memcached环境测试:
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。
$mem = new Memcache;
$mem->connect("127.0.0.1",11211);
$mem->set('key', "This is tell you: memcached rum success!", 0, 60);
$val = $mem->get('key');
echo $val;
?>


三、安装memcached的PHP扩展

1、在http://pecl.php.net/package/memcache 选择相应想要下载的memcache版本。
2、安装PHP的memcache扩展

tar vxzf memcache-2.2.5.tgz

我的php安装在/web/php
确保编译参数为以下:
/web/php/bin/phpize
./configure --with-php-config=/web/php/bin/php-config


3、安装完后会有类似这样的提示:

Installing shared extensions: /web/php/lib/php/extensions/no-debug-zts-20060613/

4、把php.ini中的extension_dir = "./"修改为

extension_dir = "/web/php/lib/php/extensions/no-debug-zts-20060613/"

5、添加一行来载入memcache扩展:extension=memcache.so

Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]