Windows下的Memcache安装
本文最后更新于 6223 天前,其中的信息可能已经有所发展或是发生改变。

很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。
其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西,害得我在CnetOS下折腾1天才搞定,今天突然发现Windows下的Memcache进行开发调试完全没有问题,所以写篇Memcache的文档分享给大家。

Windows下的Memcache安装

  1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached
  2. 在终端(也即cmd命令界面)下输入 'c:\memcached\memcached.exe -d install' 安装
  3. 再输入: 'c:\memcached\memcached.exe -d start' 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
    4.下载php_memcache.dll,请自己查找对应的php版本的文件
  4. 在C:\winnt\php.ini 加入一行 'extension=php_memcache.dll'
    6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!

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 显示帮助

Memcache环境测试
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!

<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'This is a test!', 0, 60);
$val = $mem->get('key');
echo $val;
?>

参考资料
对Memcached有疑问的朋友可以参考下列文章:
Linux下的Memcache安装https://kimi.pub/257.html
Windows下的Memcache安装https://kimi.pub/258.html
Memcache基础教程https://kimi.pub/259.html
Discuz!的Memcache缓存实现https://kimi.pub/261.html
Memcache协议中文版https://kimi.pub/306.html
Memcache分布式部署方案https://kimi.pub/395.html
Memcached的LRU算法https://kimi.pub/449.html

评论

  1. bbq
    17 年前
    2007-12-10 15:52:47

    不错,不错,谢谢分享

  2. 17 年前
    2007-12-20 10:17:28

    好东西,我拿过去了!

  3. 秋秋
    17 年前
    2008-1-21 7:51:44

    php_memcache.dll点击,已经无法下载了,水水,另外

    memcached 1.2.1 for Win32 有三个版本,下载那个啊,我是win2003

    memcached 1.2.1 for Win32 source code (Dec 23, 2006)
    memcached 1.2.1 for Win32 binaries (Dec 23, 2006)
    patches to add support for Win32 to the code in the svn (Dec 23, 2006)

    谢谢

  4. 博主
    17 年前
    2008-1-21 15:55:11

    Win32 binaries下载这个

    php_memcache.dll可以在这里下载http://pecl.php.net/package/memcache

  5. 17 年前
    2008-2-21 21:59:15

    估计会有.net的朋友搜到这篇文章,别灰心 看这里
    《分布式缓存系统Memcached简介与实践 .Net版》
    http://www.cnblogs.com/zjneter/archive/2007/07/19/822780.html

  6. 游鱼
    17 年前
    2008-2-29 14:13:22

    楼主,请教一个问题,我在win环境下面通过命令启动memcached 执行:memcached.exe -d start -p 11217 -l 10.0.68.53

    问题:只监听了11211 默认端口,而且不能开通多个端口实例

  7. 博主
    17 年前
    2008-2-29 18:19:08

    一般情况下 win环境下的Memcached仅仅是作为开发调试之用。
    回答完毕

  8. pu
    17 年前
    2008-3-23 9:36:10

    讲得很好,谢谢,希望有更多的人将好东西拿出来分享

  9. tenglong
    16 年前
    2008-8-14 22:42:35

    windows 下边,如果想将memcache 作为服务安装,并且设置一个1G的内存供它用。应该怎么操作?

    memcache.exe -d install -m 1024 -p 11211 -l 127.0.0.1

    是这样吗?可是我看服务里边的命令行没变化呀……

  10. 博主
    16 年前
    2008-8-16 13:26:08

    是这样设置,你刷新下就变化了,你在win下看服务器列表,比如运行services.msc查看服务器列表,服务器参数改变后,刷新下就能看到了。

  11. tenglong
    16 年前
    2008-8-18 16:21:25

    kimi 你确定是这样设置的吗?我试了,不行。而且我单独用

    memcache.exe -d start -m 256 启动的,但是使用memcache.php 看服务器状态,最大的仍然是64MB。

  12. lffly
    16 年前
    2008-8-19 10:29:10

    不错.

  13. 博主
    16 年前
    2008-8-19 13:48:12

    @tenglong 是的 -m 256参数就表示最大使用内存为256M,我们平时使用都是在Linux下,win下的具体情况没有进行过更多的测试。

  14. 飘絮
    16 年前
    2008-9-06 23:44:57

    我在vista下为什么无法安装啊!当打memcached.exe -d install 时出现failed to install service or service is already installed!!!为什么啊

    • 飘絮
      15 年前
      2010-1-29 13:49:17

      @飘絮,

      windows7 iis7 同样出现,始终找不到办法解决

      memcached.exe -d install

      failed to install service or service is already installed

      • cares
        14 年前
        2010-12-16 23:18:23

        @余, 解决方法:
        管理员身份安装,首先找出cmd.exe的原文件(在c:\windows\system32\cmd.exe),
        右击以管理员进入,接下来的步骤就和xp安装方法一样了

  15. 博主
    16 年前
    2008-9-06 23:55:28

    @飘絮 没碰到过你这种情况
    运行services.msc看看Windows Installer是不是禁用了

  16. 仰望星空的狼
    16 年前
    2008-9-15 19:37:34

    在你这瞧了两篇文章了 不留个脚印说不过去 文章很不错 正打算用memcache

  17. 博主
    16 年前
    2008-9-15 22:51:36

    @仰望星空的狼 哈哈,不留脚印的人很多的~~

  18. lorui
    16 年前
    2008-10-31 11:04:04

    您好!
    按您的方法进行安装, PHPINFO里能看到Memcache, 但是, 运行你下面的那个例子里出错:
    Fatal error: Class ‘Memcache’ not found in F:\php\memcache.php on line 2

  19. 博主
    16 年前
    2008-10-31 23:08:32

    @lorui
    重新做下面两个步骤~
    4.下载php_memcache.dll,请自己查找对应的php版本的文件
    5. 在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’

  20. lanneret
    16 年前
    2008-11-26 17:35:11

    谢谢分享,支持一下

  21. 16 年前
    2008-11-28 10:14:37

    Fatal error: Class ‘Memcache’ not found in F:\php\memcache.php on line 2
    也是出现这个错误。还好解决了。
    感觉还是版本问题。
    我php用的是5.2.6
    下载pecl 5.2.6,里面的php_memceche.dll不好用。
    又下载了个5.2.1的php_memceche.dll,终于ok了。

  22. 16 年前
    2008-12-04 10:15:31

    Fatal error: Class ‘Memcache’ not found
    我用的是php_memcache.dll php-5.2.1
    PHP环境是5.2.6,phpinfo显示安装成功,但不知道为什么出现上面的提示!

  23. 博主
    16 年前
    2008-12-06 2:24:39

    @必优 应该是你下载的php_memceche.dll不对,换个版本试试。

  24. 1987
    16 年前
    2008-12-12 16:24:05

    php_memcache.dll可以在这里下载http://pecl.php.net/package/memcache

    php 版本5.2.3该下哪个啊?

  25. shui
    15 年前
    2009-9-09 17:21:50

    默认的安装方法和端口。

  26. 15 年前
    2009-9-26 16:46:27

    使用vista或windows 7时,需要以管理员身份运行命令行,再执行安装服务等操作。

  27. Mervin.G
    15 年前
    2009-11-23 11:55:02

    好东西,收了.

  28. 小鱼
    15 年前
    2009-12-10 15:28:42

    为什么我的phpinfo 里面没有出现memcache?

    • 博主
      小鱼
      15 年前
      2009-12-14 11:49:56

      @小鱼, 重新做下面两个步骤~
      4.下载php_memcache.dll,请自己查找对应的php版本的文件
      5. 在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’

    • 小鱼
      15 年前
      2010-1-14 17:17:37

      @小鱼,

      说得没错,刚开始我也没有安装成功,所以开启了Windows Install服务和用管理员身份运行(先写成bat文件,再运行)就可以了.

      另,我用的是Zend Server,它里面已经带有php_memcached.dll文件了.在安装目录的\ZendServer\lib\phpext下,因为是自带的,所以也不用担心版本问题了.
      另,在php.ini文件里面也有,只是没有开放而已,把前面的#删掉,重启apache就OK了.谢谢楼主

  29. karl
    15 年前
    2010-2-03 10:08:50

    谁会真的在市场环境上用windows作为memcached的环境。

    • 博主
      karl
      15 年前
      2010-2-18 20:00:17

      @karl, 这个是给程序员调试程序方便的了 :)

  30. airminder
    15 年前
    2010-3-17 12:31:13

    請問站主 我是用win2003+appserv(php+mysql+apache)
    我已經在SERVER端安裝好memcached程式 也執行服務OK了
    然後也在php.ini加入這行php_memcache.dll
    接著把php_memcache.dll放到php下的extensions目錄中
    但我在http://pecl.php.net/package/memcache中
    下載 memcache-2.2.5.tgz,解開後並沒有php_memcache.dll
    請問你說請下載php對應版本的php_memcache.dll是要去哪邊下載
    我一直卡在這邊
    感謝你的幫忙

    • 博主
      airminder
      15 年前
      2010-3-22 22:38:42

      @airminder, 我现在还真不知道那里有win的下班,不过你可以搜索下APMServ看看这里集成的php_memcache.dll你能不能用

  31. 无双
    15 年前
    2010-5-03 21:11:24

    谢谢了先学习,真是一个很不错的空间

  32. 无双
    15 年前
    2010-5-03 21:19:27

    另外提一点,下载memcache要看好自己的环境是ts还是nts 就是线程安全还是非线程安全,下载相对应的lib

  33. 米米
    15 年前
    2010-6-15 18:26:09

    您好,先謝謝您寫了這篇教學
    我是使用windows 7的系統
    但是安裝一樣會出現failed to install的訊息
    當然啟動也是無法作用
    請問有什麼解決方法嗎??
    謝謝

  34. 14 年前
    2010-7-20 18:28:27

    不错 可是我想配合win 下的gearmand 如何做 按你的说法以成功运行了测试程序
    但 windows下 没有gearmand 吗????

  35. 14 年前
    2010-12-02 21:15:47

    这是技术文章

  36. 14 年前
    2010-12-09 17:13:49

    我php没有加载成功memcache,在phpinfo测试里面没有显示memcache,怎么办。

  37. 14 年前
    2010-12-17 16:24:49

    之前用1.2.4版,发现cpu消耗很多,换成1.2.6之后清静了,cpu几乎就不消耗了。

    另外装成服务之后,可以通过注册表修改命令设置最大内存。
    位置在:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server
    修改ImagePath 的值为: “D:\memcached-1.2.6\memcached.exe” -m 128 -d runservice

  38. 阳冬
    14 年前
    2010-12-31 12:13:36

    咋个没看到.dll文件呢,咋个弄哦

  39. 14 年前
    2011-1-06 10:56:33

    汗… 那个dll文件. .怎么找也没找到- – …………….

  40. 14 年前
    2011-1-19 13:24:53

    谢谢

  41. 14 年前
    2011-2-24 9:42:18

    这个东西,真是个好东西啊,哈哈,学习了

    • ruby
      14 年前
      2011-2-24 9:44:15

      楼主,换个友情链接怎么样?
      我看了你的很多文章,都非常的好,我会经常来你的站看看的,下面是我的网站
      Drupal建站网

  42. 14 年前
    2011-5-12 21:25:26

    为什么我一直装不了呢
    Fatal error: Class ‘Memcache’ not found in

  43. 14 年前
    2011-5-13 14:27:44

    好文章
    ps,memcache for win地址无效了,我用的这个http://www.splinedancer.com/memcached-win32/

    • 博主
      alswl
      14 年前
      2011-5-13 14:34:39

      @alswl, tks

  44. 13 年前
    2011-8-12 8:16:34

    貌似链接都失效了

  45. 年轻人
    13 年前
    2012-2-01 11:28:50

    php_memcache.dll在哪里下载啊,我没找到。。。。

  46. 年轻人
    13 年前
    2012-2-01 11:29:43

    php_memcache.dll那里可以下载啊,我都没找到

  47. 11 年前
    2014-5-02 20:11:05

    写的挺好的,支持

  48. 10 年前
    2014-7-14 16:38:31

    虽然帖子过去非常非常久了,但是内容很经典,让我受益匪浅。
    非常感谢

  49. 8 年前
    2016-9-09 8:50:24

    不错,支持一下!!!

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇