Win 下面配置 memcache

开发环境win下面配置使用Memcached方法概述

  再简单的事情没有做一遍都不能明白其中时候如此,今天配置Memcached就发现这个问题。帮助很全,先是在memcached for Windows获取到了需要的win下面的Memcached,按照方法:

  引用

Unzip the binaries in your desired directory (eg. c:memcached)
Install the service using the command: 'c:memcachedmemcached.exe -d install' from the command line
Start the server from the Microsoft Management Console or by running the following command: 'c:memcachedmemcached.exe -d start'
Use the server, by default listening to port 11211

  然后

  在php.ini 加入一行 'extension=php_memcache.dll'

  然后到 http://pecl4win.php.net/ext.php/php_memcache.dll获取php_memcache.dll

  并复制到 ext 中(记住版本不要错了!)

  重启Apache,发现PHPInfo就是提示出不来memcache,真是无语了,代码测试总是提示

  引用

  Fatal error: Class 'Memcache' not found in D:xampplitehtdocsmemcacheindex.php on line 20

  开始觉得奇怪,于是搜索在官方网站发现了http://www.php.net/manual/zh/ref.memcache.php


Hi there:
For run memcached in a windows box: (tested with latest php,apache and memcache in xp sp2)
a) download the php_memcache.dll it can be found in the pecl file.
b) put the dll in the extension folder (c:/php/extension for example). You cannot miss this folder because they are filled with php*.dll files. In some cases the extension folder used is the system32, a non-standard way to put dll but still works.
c)configure the php.ini
; i put this like the latest extension
extension=php_memcache.dll
; i'm not sure about this but don't hurts..
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
d)This is important, memcached works with a EXTERNAL service. This service must be downloaded and installed prior to use the memcache. I use: http://jehiah.cz/projects/memcached-win32/
e)Remember to install the service and to start the service memcached.exe -d install for install and run services.msc for start the memcached service (or restart the system).
f) check the firewall ports.
Finally restart the apache/iis and runs some test. At least in phpinfo must show some info about the memcache.
Final notes :The "awe" about memcache is not only can help for speed some process (or reduce the cpu use), also can be used like a global session for store a whole object also this "global session" is shared among all the users, like APPLICATION used in ASP. So (for example) it's possible to do a user counter without needing of database or writing a file.


 试试态度加上看了一下,看到了熟悉的东西了:

  view plaincopy to clipboardprint?

$mem=newMemcache;  

$mem->connect('127.0.0.1',11211);  

 

$mem->set('key','Thisisatest!',0,60);  

 

$val=$mem->get('key');  

echo$val; 

$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;

  在浏览器输出了

  This is a test!

  另外作为服务器开发者,自然很关注的一个问题就是这个Memcached的原理问题,在老农如是想,如是说,如是为博客中提到:

  引用

  Memcached 本身的启动过程,在 memcached.c 的 main 函数中顺序如下:

  1 、调用 settings_init() 设定初始化参数

  2 、从启动命令中读取参数来设置 setting 值

  3 、设定 LIMIT 参数

  4 、开始网络 socket 监听(如果非 socketpath 存在)( 1.2 之后支持 UDP 方式)

  5 、检查用户身份( Memcached 不允许 root 身份启动)

  6 、如果有 socketpath 存在,开启 UNIX 本地连接(Sock 管道)

  7 、如果以 -d 方式启动,创建守护进程(如上调用 daemon 函数)

  8 、初始化 item 、 event 、状态信息、 hash 、连接、 slab

  9 、如设置中 managed 生效,创建 bucket 数组

  10 、检查是否需要锁定内存页

  11 、初始化信号、连接、删除队列

 

  12 、如果 daemon 方式,处理进程 ID

  13 、event 开始,启动过程结束, main 函数进入循环。

posted @   ScottX  阅读(2912)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示