看来PHP有两个名为memcache和memcached的 memcached库.有什么区别,你怎么知道使用哪一个?一个过时了吗?似乎memcached提供了更多的方法,所以我认为这意味着它有最多的开发 - 但它似乎也需要外部C/C++库,所以我不确定我是否可以安装它.
似乎memcache已经存在更长时间,不需要额外的库,并且已经预编译了偶数窗口的二进制文件!我认为这将是现在更好的选择.然而,作为memcached(服务器)的新手,我不确定memcached(php)中是否有一些非常重要的特性使其值得额外麻烦.
我读了这篇文章:http://www.mysqlperformanceblog.com/2006/09/27/apc-or-memcached/当时..我希望得到最好的缓存引擎,以便我的应用程序非常快.当然我不想过度缓存,但我想至少选择最好的东西.在那篇文章中它说Memcached很慢而且apc很快所以为什么每个人都选择memcached?
http://framework.zend.com/manual/en/zend.cache.backends.html#zend.cache.backends.twolevels在这里说"使用快速的(但有限的)像Apc,Memcache ......和a "慢"一个像File,Sqlite ......"你认为使用Apc作为快速和Memcache,因为慢是一个好主意?
在PHP中是否有一种方法可以使用"会话外"变量,这些变量不会在每个连接处加载/卸载,就像在Java服务器中一样?
请原谅我缺乏准确性,我不知道如何以正确的方式写它.
主要想法是这样的事情:
<?php
...
// $variablesAlreadyLoaded is kind of "static" and shared between all PHP threads
// No need to initialize/load/instantiate it.
$myVar = $variablesAlreadyLoaded['aConstantValueForEveryone'];
...
?>
Run Code Online (Sandbox Code Playgroud)
我已经做过这样的使用shmop和其他奇怪的事情,但如果有一个"干净"的方式来做"纯PHP"而不使用缓存系统(我想到APC,Redis ......),也没有数据库.
编辑1:
由于人们(感谢他们花时间陪我)以同样的方式回答我的会话,我添加了一个我错过了写的约束:没有会话请.
编辑2:
似乎唯一的PHP本机方法是共享内存(shmop)和命名管道.我将使用托管方式访问共享对象,不介意内存管理(共享内存块大小)或系统问题(管道).
然后,我在网上浏览了一个PHP模块/库,它提供了执行此操作的函数/方法:我什么也没找到.
编辑3:
后在路上的几个研究中指出@KFO,看来该putenv/ setenv不作出处理对象(我会避免序列化).因此,它解决了诸如字符串或数字之类的短"事物"的问题,但不解决更大的/ comples对象的问题.
使用"env way"和另一种处理更大对象的方法将是不相干的,并增加了代码和维护的复杂性.
编辑4:
发现这个:DBus(GREE Lab DBus),但我没有工具在工作中测试它.有人测试了吗?
我对每一个建议持开放态度.
谢谢
编辑5("答案"):
由于DBus不是我正在寻找的(需要安装第三方模块,没有"严重"的应用证据),我现在正在使用已经证明其可靠性的Memcache(关注@PeterM评论,见下文).
php persistence share shared-memory inter-process-communicat