- 浏览: 4381316 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (163)
- 职场 && 心情 (22)
- Java/Basic (17)
- Java/Compression (7)
- Java/Security (20)
- Java/Maven (3)
- Java/Cache (11)
- Eclipse (4)
- Spring (19)
- ORM/Hibernate (2)
- ORM/iBatis (3)
- DB/NoSQL (11)
- DB/MySQL (7)
- DB/MS SQL Server (4)
- OS/Linux (11)
- OS/Mac (7)
- C/C++ (4)
- Server Architecture/Basic (13)
- Server Architecture/Distributed (17)
- Moblie/Andriod (2)
- WebService (3)
- Objective-C (1)
- Html (1)
- 设计模式 (1)
- Scala (0)
- Kafka (1)
最新评论
-
w47_csdn:
证书安装:在"浏览"选项中选择" ...
Java加密技术(九)——初探SSL -
w47_csdn:
spiritfrog 写道你好,我按照你的步骤,tomcat中 ...
Java加密技术(九)——初探SSL -
liuyachao111:
11楼说的对 用@ControllerAdvicepublic ...
Spring 注解学习手札(八)补遗——@ExceptionHandler -
irayslu:
作者你好, 我把你的源码放在jdk6, jdk7 中运行正常, ...
Java加密技术(五)——非对称加密算法的由来DH -
夏季浅忆-卖小子:
为什么不能解压rar格式的压缩包呢
Java压缩技术(三) ZIP解压缩——Java原生实现
08年的时候接触过Memcached,当时还对它的客户端产品嗤之以鼻,毕竟手工代码没有各种ORM原生XML配置方便。尽管如此,Memcached现在已经成了服务器架构里不可或缺的一部分!
相关链接:
Memcached笔记——(一)安装&常规错误&监控
Memcached笔记——(二)XMemcached&Spring集成
Memcached笔记——(三)Memcached使用总结
Memcached笔记——(四)应对高并发攻击
一、下载
1.Libevent
简单的说就是一个事件触发的网络库,Memcached离不开它。
2.Memcached
今天的主角
二、安装
1.Libevent
解压缩
编译、安装
这里一定要注意指定--prefix,后面配置memcached的时候就有必要用到。
2.Memcached
解压
编译、安装
这里一定要指定libevent的路径,否则启动的时候就有找不到libevent的so文件的错误!
启动
参数
-p <num> TCP port number to listen on (default: 11211)
-U <num> UDP port number to listen on (default: 11211, 0 is off)
-l <addr> interface to listen on (default: INADDR_ANY, all addresses)
<addr> may be specified as host:port. If you don't specify
a port number, the value you specified with -p or -U is
used. You may specify multiple addresses separated by comma
or by using -l multiple times
-d run as a daemon
-u <username> assume identity of <username> (only when run as root)
-m <num> max memory to use for items in megabytes (default: 64 MB)
-M return error on memory exhausted (rather than removing items)
-c <num> max simultaneous connections (default: 1024)
-v verbose (print errors/warnings while in event loop)
-P <file> save PID in <file>, only used with -d option
要关掉memcached
是否正常?Telnet上去看看
然后输入
接着就能看到:
STAT pid 3021
STAT uptime 3621
STAT time 1331261509
STAT version 1.4.13
STAT libevent 2.0.17-stable
STAT pointer_size 64
STAT rusage_user 0.000000
STAT rusage_system 0.000999
STAT curr_connections 6
STAT total_connections 7
STAT connection_structures 7
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 72
STAT bytes_written 1038
STAT limit_maxbytes 52428800
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0
END
上面状况说明Memcached服务正常。
还可以试试get、set、delete、replace
输入
三、系统服务
参照Nginx的系统服务,自己写了一个Memcached的系统服务脚本。
先构建/etc/init.d/memcahed这个文件,然后赋予其可执行权限:
memcached脚本如下:
注意这几行配置,请根据实际情况配置memcached执行文件路径,以及Memcached使用内存大小:
追加为系统服务:
然后就可以通过service memcached start|stop|status|restart控制memcached了!
四、常规错误
一开始没有指定libevent路径安装memcached的时候,启动memcached就报这个错误:
其实这个文件就在/usr/lib下。错就错在Linux是64bit系统,如果没有指定libevent路径,memcached就会去/usr/lib64下去找。
找到这个文件
提示找不到libevent-2.0.so.5
定位
注意这句:
做个软连接
再试试:
这回找到了!
五、监控
可以在服务器上配置一个PHP页面来监测Memcached的情况,
下载MemcachePHP
配置也比较简单,主要包括账户配置,以及Memcached Server地址配置。
常见错误:
在memcache.php顶端加上“date_default_timezone_set('Asia/Hong_Kong');”即可,具体地域设置参考:http://www.php.net/manual/zh/datetime.configuration.php#ini.date.timezone
如果不方便搭建PHP服务,可以使用Perl脚本memcache-top
修改@default_instances或使用--instances参数:
先到这里,后续做压力测试,Java客户端开发,Spring系统集成等。
相关链接:
Memcached笔记——(一)安装&常规错误&监控
Memcached笔记——(二)XMemcached&Spring集成
Memcached笔记——(三)Memcached使用总结
Memcached笔记——(四)应对高并发攻击
相关链接:
Memcached笔记——(一)安装&常规错误&监控
Memcached笔记——(二)XMemcached&Spring集成
Memcached笔记——(三)Memcached使用总结
Memcached笔记——(四)应对高并发攻击
一、下载
1.Libevent
简单的说就是一个事件触发的网络库,Memcached离不开它。
wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz
2.Memcached
今天的主角
wget http://memcached.googlecode.com/files/memcached-1.4.13.tar.gz
二、安装
1.Libevent
解压缩
tar zxvf libevent-2.0.17-stable.tar.gz
编译、安装
./configure --prefix=/usr && make && make install
这里一定要注意指定--prefix,后面配置memcached的时候就有必要用到。
2.Memcached
解压
tar zxvf memcached-1.4.13.tar.gz
编译、安装
./configure --with-libevent=/usr/lib && make && make install
这里一定要指定libevent的路径,否则启动的时候就有找不到libevent的so文件的错误!
启动
memcached -d -m 512 -p 11211 -u root -c 256 -P /var/run/memcached.pid
参数
引用
-p <num> TCP port number to listen on (default: 11211)
-U <num> UDP port number to listen on (default: 11211, 0 is off)
-l <addr> interface to listen on (default: INADDR_ANY, all addresses)
<addr> may be specified as host:port. If you don't specify
a port number, the value you specified with -p or -U is
used. You may specify multiple addresses separated by comma
or by using -l multiple times
-d run as a daemon
-u <username> assume identity of <username> (only when run as root)
-m <num> max memory to use for items in megabytes (default: 64 MB)
-M return error on memory exhausted (rather than removing items)
-c <num> max simultaneous connections (default: 1024)
-v verbose (print errors/warnings while in event loop)
-P <file> save PID in <file>, only used with -d option
要关掉memcached
kill -9 `cat /var/run/memcached.pid`
是否正常?Telnet上去看看
telnet xxx.xxx.xxx.xxx 11211
然后输入
stats
接着就能看到:
引用
STAT pid 3021
STAT uptime 3621
STAT time 1331261509
STAT version 1.4.13
STAT libevent 2.0.17-stable
STAT pointer_size 64
STAT rusage_user 0.000000
STAT rusage_system 0.000999
STAT curr_connections 6
STAT total_connections 7
STAT connection_structures 7
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 72
STAT bytes_written 1038
STAT limit_maxbytes 52428800
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0
END
上面状况说明Memcached服务正常。
还可以试试get、set、delete、replace
引用
set foo 0 0 3 (保存命令)
bar (数据)
STORED (结果)
get foo (取得命令)
VALUE foo 0 3 (数据)
bar (数据)
bar (数据)
STORED (结果)
get foo (取得命令)
VALUE foo 0 3 (数据)
bar (数据)
输入
quit退出。
三、系统服务
参照Nginx的系统服务,自己写了一个Memcached的系统服务脚本。
先构建/etc/init.d/memcahed这个文件,然后赋予其可执行权限:
touch /etc/init.d/memcached chmod +x /etc/init.d/memcached
memcached脚本如下:
#!/bin/bash # v.0.0.1 # create by snowolf at 2012.5.25 # # memcached - This shell script takes care of starting and stopping memcached. # # chkconfig: - 90 10 # description: Memcache provides fast memory based storage. # processname: memcached memcached_path="/usr/local/bin/memcached" memcached_pid="/var/run/memcached.pid" memcached_memory="1024" # Source function library. . /etc/rc.d/init.d/functions [ -x $memcached_path ] || exit 0 RETVAL=0 prog="memcached" # Start daemons. start() { if [ -e $memcached_pid -a ! -z $memcached_pid ];then echo $prog" already running...." exit 1 fi echo -n $"Starting $prog " # Single instance for all caches $memcached_path -m $memcached_memory -l 0.0.0.0 -p 11211 -u root -d -P $memcached_pid RETVAL=$? [ $RETVAL -eq 0 ] && { touch /var/lock/subsys/$prog success $"$prog" } echo return $RETVAL } # Stop daemons. stop() { echo -n $"Stopping $prog " killproc -d 10 $memcached_path echo [ $RETVAL = 0 ] && rm -f $memcached_pid /var/lock/subsys/$prog RETVAL=$? return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status $prog RETVAL=$? ;; restart) stop start ;; *) echo $"Usage: $0 {start|stop|status|restart}" exit 1 esac exit $RETVAL
注意这几行配置,请根据实际情况配置memcached执行文件路径,以及Memcached使用内存大小:
引用
memcached_path="/usr/local/bin/memcached"
memcached_memory="1024"
memcached_memory="1024"
追加为系统服务:
chkconfig --add memcached chkconfig memcached on
然后就可以通过service memcached start|stop|status|restart控制memcached了!
四、常规错误
一开始没有指定libevent路径安装memcached的时候,启动memcached就报这个错误:
引用
memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
其实这个文件就在/usr/lib下。错就错在Linux是64bit系统,如果没有指定libevent路径,memcached就会去/usr/lib64下去找。
找到这个文件
whereis libevent-2.0.so.5
引用
libevent-2.0.so: /usr/lib/libevent-2.0.so.5
ldd /usr/local/bin/memcached
提示找不到libevent-2.0.so.5
引用
linux-vdso.so.1 => (0x00007fff41dfd000)
libevent-2.0.so.5 => not found
librt.so.1 => /lib64/librt.so.1 (0x0000003c94a00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003c93a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003c92e00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c92a00000)
libevent-2.0.so.5 => not found
librt.so.1 => /lib64/librt.so.1 (0x0000003c94a00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003c93a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003c92e00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c92a00000)
定位
LD_DEBUG=libs /usr/local/bin/memcached -v
引用
19905: find library=libevent-2.0.so.5 [0]; searching
19905: search path=/usr/lib/lib/tls/x86_64:/usr/lib/lib/tls:/usr/lib/lib/x86_64:/usr/lib/lib (RPATH from file /usr/local/bin/memcached)
19905: trying file=/usr/lib/lib/tls/x86_64/libevent-2.0.so.5
19905: trying file=/usr/lib/lib/tls/libevent-2.0.so.5
19905: trying file=/usr/lib/lib/x86_64/libevent-2.0.so.5
19905: trying file=/usr/lib/lib/libevent-2.0.so.5
19905: search cache=/etc/ld.so.cache
19905: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64 (system search path)
19905: trying file=/lib64/tls/x86_64/libevent-2.0.so.5
19905: trying file=/lib64/tls/libevent-2.0.so.5
19905: trying file=/lib64/x86_64/libevent-2.0.so.5
19905: trying file=/lib64/libevent-2.0.so.5
19905: trying file=/usr/lib64/tls/x86_64/libevent-2.0.so.5
19905: trying file=/usr/lib64/tls/libevent-2.0.so.5
19905: trying file=/usr/lib64/x86_64/libevent-2.0.so.5
19905: trying file=/usr/lib64/libevent-2.0.so.5
19905:
/usr/local/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
19905: search path=/usr/lib/lib/tls/x86_64:/usr/lib/lib/tls:/usr/lib/lib/x86_64:/usr/lib/lib (RPATH from file /usr/local/bin/memcached)
19905: trying file=/usr/lib/lib/tls/x86_64/libevent-2.0.so.5
19905: trying file=/usr/lib/lib/tls/libevent-2.0.so.5
19905: trying file=/usr/lib/lib/x86_64/libevent-2.0.so.5
19905: trying file=/usr/lib/lib/libevent-2.0.so.5
19905: search cache=/etc/ld.so.cache
19905: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64 (system search path)
19905: trying file=/lib64/tls/x86_64/libevent-2.0.so.5
19905: trying file=/lib64/tls/libevent-2.0.so.5
19905: trying file=/lib64/x86_64/libevent-2.0.so.5
19905: trying file=/lib64/libevent-2.0.so.5
19905: trying file=/usr/lib64/tls/x86_64/libevent-2.0.so.5
19905: trying file=/usr/lib64/tls/libevent-2.0.so.5
19905: trying file=/usr/lib64/x86_64/libevent-2.0.so.5
19905: trying file=/usr/lib64/libevent-2.0.so.5
19905:
/usr/local/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory
注意这句:
引用
19905: trying file=/usr/lib64/libevent-2.0.so.5
做个软连接
ln -s /usr/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
再试试:
ldd /usr/local/bin/memcached
这回找到了!
引用
linux-vdso.so.1 => (0x00007fffffef6000)
libevent-2.0.so.5 => /usr/lib64/libevent-2.0.so.5 (0x00002b5608a26000)
librt.so.1 => /lib64/librt.so.1 (0x0000003c94a00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003c93a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003c92e00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c92a00000)
libevent-2.0.so.5 => /usr/lib64/libevent-2.0.so.5 (0x00002b5608a26000)
librt.so.1 => /lib64/librt.so.1 (0x0000003c94a00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003c93a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003c92e00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c92a00000)
五、监控
可以在服务器上配置一个PHP页面来监测Memcached的情况,
下载MemcachePHP
配置也比较简单,主要包括账户配置,以及Memcached Server地址配置。
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
常见错误:
引用
Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/usr/local/apache.../memcache.php on line 726
在memcache.php顶端加上“date_default_timezone_set('Asia/Hong_Kong');”即可,具体地域设置参考:http://www.php.net/manual/zh/datetime.configuration.php#ini.date.timezone
如果不方便搭建PHP服务,可以使用Perl脚本memcache-top
修改@default_instances或使用--instances参数:
perl memcache-top-v0.6 --instances 10.11.155.26 10.11.155.41
先到这里,后续做压力测试,Java客户端开发,Spring系统集成等。
相关链接:
Memcached笔记——(一)安装&常规错误&监控
Memcached笔记——(二)XMemcached&Spring集成
Memcached笔记——(三)Memcached使用总结
Memcached笔记——(四)应对高并发攻击
评论
6 楼
Zorla
2016-06-03
难得的好文章
5 楼
Zorla
2016-06-03
楼主功力深厚,在下佩服!
4 楼
wzf7065
2014-08-06
mark,再慢慢看,楼主好文章
3 楼
songtaoying
2014-05-06
非常不错。按照您的步聚做成功了
2 楼
sunshine_bean
2014-04-30
好文章,谢谢
1 楼
di1984HIT
2014-04-14
写的真好,学习了
发表评论
-
Thrift小记
2013-03-14 18:37 7773Thrit用的不多,也不够深入,这里小记一笔。 关于Th ... -
征服 Redis + Jedis + Spring (三)—— 列表操作
2013-03-06 16:16 83956一开始以为Spring下操 ... -
Nginx扩展(一):nginx_tcp_proxy_module
2013-01-15 16:41 20696好东西必须持续钻研,且持续积累,尤其要做个笔记。 今天是 ... -
Memcached笔记——(四)应对高并发攻击
2012-09-13 09:48 28924近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意 ... -
征服 Redis + Jedis + Spring (二)—— 哈希表操作(HMGET HMSET)
2012-08-29 18:29 82313不得不说,用哈希操作来存对象,有点自讨苦吃! 不过,既然 ... -
征服 Redis + Jedis + Spring (一)—— 配置&常规操作(GET SET DEL)
2012-08-29 16:30 157450有日子没写博客了,真的是忙得要疯掉。 完成项目基础架构搭建 ... -
Redis集群服务器-高可用调研随笔
2012-08-22 22:24 28861今天改了一天的Bug,本 ... -
征服 Mongodb 之 安装与系统服务配置
2012-08-16 18:47 13582今天补点旧账,去年搭建系统时,曾想用Mongodb做 ... -
征服 Redis + Jedis
2012-08-15 17:49 83409用Memcached,对于缓存对象大小有要求,单个对象不得 ... -
征服 Redis
2012-08-13 17:05 86281大约一年多前,公司同事开始使用Redis,不清楚是配置,还是 ... -
Linux环境小问题——Get HostName Error
2012-08-06 12:55 7388之前使用mysql的时候,在配置文件中,已经指明了ip访问,但 ... -
征服 Kestrel + XMemcached + Spring TaskExecutor
2012-07-30 14:43 6204上一篇征服 Kestrel + XMemcached只是对Ke ... -
征服 Kestrel + XMemcached
2012-07-24 12:06 4669接上一篇 征服Kestrel,介绍XMemcached对于Ke ... -
征服 Kestrel
2012-07-23 18:33 13239因为要面对高并发PUSH需求,考虑将其按队列方式实现,最终选型 ... -
Memcached笔记——(三)Memcached使用总结
2012-07-04 17:06 44542为了将N个前端数据同步 ... -
征服 Nginx + Tomcat
2012-05-24 17:35 267052年前一直折腾Apache,现如今更习惯Nginx。 搭建网站 ... -
征服 Nginx
2012-04-25 13:12 10296赶上要配置测试服务器,赶上Nginx-1.2.0 stable ... -
iBatis整理——EhCache支持扩展
2012-04-10 17:11 7187项目完结,整理一些技术方面的相关收获。 已经记不得EhCac ... -
Memcached笔记——(二)XMemcached&Spring集成
2012-04-01 09:55 42316今天研究Memcached的Java的Client,使用XMe ... -
memcached整合ibatis
2012-03-08 09:10 0ibatis自带的本地缓存有FIFO,LRU等,对于分布式缓存 ...
相关推荐
Memcached——内存数据库讲义及安装步骤
安装php-memcached扩展 https://github.com/php-memcached-dev/php-memcached tar -zxvf php-memcached-3.1.3.tar.gz && cd /root/php-memcached-3.1.3 && /usr/local/php7/bin/phpize && ./configure --with-...
zabbix利用lld监控memcached
公司要求组织一个基于Java的memcached培训,整理了这个文档。里面有4个文件,包括memcached部署,memcached培训,监控工具memcache-top安装和daemontools安装。文档是基于word2013的,打不开的话,右键--属性--解锁
memcached-笔记资料
memcached安装错误解决文件
Memcached 统计与监控,用telnet去连接memcached,并统计和监控memcached
-d install 安装memcached服务 -d uninstall 卸载memcached服务 -u 以的身份运行 (仅在以root运行的时候有效) -m 最大内存使用,单位MB。默认64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是...
Memcached学习笔记2.docMemcached学习笔记2.doc
在windows下安装memcached时,下了很多资源,很多都不能用或者不确定当前版本是否与本地php版本相对应。于是就整了份完整资料,给有需要的人。本地php是5.3版本的,所以压缩包里放了memcached 2.2.6版的...
win7 安装memcached安装,内含有memcached.exe安装资源以及php_memcache5.4-ts
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的...
memcached 源码剖析笔记和源码。 Memcached 是一个自由、源码开放、高性能、分布式内存对象缓存系统,目的在于过减轻数据库负载来使动态 Web 应用程序提速。
memcached安装软件 libevent-2.0.21-stable.tar.gz magent.tar.gz memcached-1.4.15.tar.gz
NULL 博文链接:https://lqw.iteye.com/blog/688205
安装Memcached及Memcached配置
Memcached源码剖析笔记:从源码级别剖析memcached的实现原理,讲的比较细。
memcached_windows 版安装文件memcached_windows 版安装文件memcached_windows 版安装文件memcached_windows 版安装文件
wampsever安装memcached需要的安装包及php_memcached.dll文件
安装Memcached及Memcached配置