14赞
1026
当前位置:  开发笔记 > 编程语言 > 正文

Windows10上的MemcachePHP扩展工作间歇性地工作

如何解决《Windows10上的MemcachePHP扩展工作间歇性地工作》经验,为你挑选了1个好方法。

我在apache/php windows 10上有memcache扩展(最后的细节)

创建了一个简单的测试:

$memcache = new Memcache;
$memcache->addServer("ext-memcached.e-memcached.xxx.net",11211);
$memcache->addServer("ext-memcached.e-memcached2.xxx.net",11211);
$memcache->addServer("ext-memcached.e-memcached3.xxx.net",11211);

$key='xxx_54921';
$settings = $memcache->get($key);
print_r ($settings);

memcache服务器在AWS上运行良好(生产服务器).此测试代码有效 - 它从内存缓存服务器中检索值.但是,如果我等待几分钟并刷新它将不会返回值.然后如果我再次刷新它将返回值.

相同的代码/配置适用于另一台开发计算机.

是什么导致这个?

Config:
PHP Version 5.6.34
    Windows NT SPECTRE 6.2 build 9200 (Windows 8 Home Premium Edition) i586
Build Date  Feb 28 2018 17:45:55
Compiler    MSVC11 (Visual C++ 2012)
Architecture    x86

Memcache extension:
ts x86 version from here:
https://windows.php.net/downloads/pecl/releases/memcache/3.0.8/

memcache info:
memcache support    enabled
Version 3.0.8
Revision    $Revision: 329835 $
Directive   Local Value Master Value
memcache.allow_failover 1   1
memcache.chunk_size 32768   32768
memcache.compress_threshold 20000   20000
memcache.default_port   11211   11211
memcache.hash_function  crc32   crc32
memcache.hash_strategy  standard    standard
memcache.lock_timeout   600 600
memcache.max_failover_attempts  20  20
memcache.protocol   ascii   ascii
memcache.redundancy 1   1
memcache.session_redundancy 2   2

小智.. 5

memcached服务实际上并未为您安装PHP memcached扩展。它仅安装用于存储缓存的memcached服务器。

您首先需要从PECL存储库下载Windows DLL(单击蓝色的Windows DLL链接)。然后,必须将extension = php_memcache.dll行添加到SAPI的正确php.ini文件中。另外,请注意,扩展DLL文件需要放置在XAMPP安装的正确路径中。

对于Apache,只需在您的文档根目录中使用以下行创建脚本

对于CLI SAPI,可以使用php.exe --ini进行相同的操作。同样,如果XAMPP软件包修改了配置路径,则可能需要依靠它(因为这是一个编译时指令)。

对php.ini进行更改后,您将需要重新启动PHP才能使更改生效。

您可以参考:https : //pureform.wordpress.com/2008/01/10/installing-memcache-on-windows-for-php/

由于您在Windows上使用PHP 7,因此可能很重要的一点是要注意,PECL编译的DLL可能实际上无法在Windows的apache下运行,因为您很有可能使用了adaded SAPI。因此,请确保您下载的是正确的版本。据我所知,该版本只能编译为与PHP 5.6一起使用。如注释中所述,可从https://github.com/nono303/PHP7-memcahe-dll获取适用于PHP 7的github替代方案,并在非线程安全下进行了测试。因此,您可能只能在Windows上的CLI脚本中使用此功能。



1> 小智..:

memcached服务实际上并未为您安装PHP memcached扩展。它仅安装用于存储缓存的memcached服务器。

您首先需要从PECL存储库下载Windows DLL(单击蓝色的Windows DLL链接)。然后,必须将extension = php_memcache.dll行添加到SAPI的正确php.ini文件中。另外,请注意,扩展DLL文件需要放置在XAMPP安装的正确路径中。

对于Apache,只需在您的文档根目录中使用以下行创建脚本

对于CLI SAPI,可以使用php.exe --ini进行相同的操作。同样,如果XAMPP软件包修改了配置路径,则可能需要依靠它(因为这是一个编译时指令)。

对php.ini进行更改后,您将需要重新启动PHP才能使更改生效。

您可以参考:https : //pureform.wordpress.com/2008/01/10/installing-memcache-on-windows-for-php/

由于您在Windows上使用PHP 7,因此可能很重要的一点是要注意,PECL编译的DLL可能实际上无法在Windows的apache下运行,因为您很有可能使用了adaded SAPI。因此,请确保您下载的是正确的版本。据我所知,该版本只能编译为与PHP 5.6一起使用。如注释中所述,可从https://github.com/nono303/PHP7-memcahe-dll获取适用于PHP 7的github替代方案,并在非线程安全下进行了测试。因此,您可能只能在Windows上的CLI脚本中使用此功能。


推荐阅读
author-avatar
你的拥吻像情歌一样凄美_207
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有