Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有LRU过期的内存缓存_Php_Memcached_Redis_Xcache - Fatal编程技术网

Php 具有LRU过期的内存缓存

Php 具有LRU过期的内存缓存,php,memcached,redis,xcache,Php,Memcached,Redis,Xcache,我正在为我的PHP网站寻找内存缓存。这不是一个高流量的网站,我只想缓存数据和部分页面,以提高性能。数据大小将从几个字节到几个kBs不等。我目前正在使用xCache,没有任何问题 切换到memcached还是redis更好?有更好的选择吗?如果你没有任何明显的问题,为什么现在就要换?Memcached或redis可能更好,但如果您现在不需要它们,最好还是离开它们。只要您的缓存策略是合理的,并且缓存接口是抽象的,您应该能够在以后实际需要切换到可伸缩缓存时添加它们 PHP中的xCache也是一个操作码

我正在为我的PHP网站寻找内存缓存。这不是一个高流量的网站,我只想缓存数据和部分页面,以提高性能。数据大小将从几个字节到几个kBs不等。我目前正在使用xCache,没有任何问题


切换到memcached还是redis更好?有更好的选择吗?

如果你没有任何明显的问题,为什么现在就要换?Memcached或redis可能更好,但如果您现在不需要它们,最好还是离开它们。只要您的缓存策略是合理的,并且缓存接口是抽象的,您应该能够在以后实际需要切换到可伸缩缓存时添加它们

PHP中的xCache也是一个操作码缓存。。Memcache和redis或多或少类似于进程外的键值对。。如果您的站点运行在2或3服务器上,并且您需要共享上下文b.w,而不仅仅是保存单个实例,那么这些缓存将有所帮助

--Sai

我个人使用,因为我已经将其用于操作码缓存。这样我就可以少维护一些东西。我使用APC的另一个原因是,它计划包含在下一个PHP版本中,所以我觉得它更“稳定”


虽然很明显:您应该更改缓存系统,只是为了更改它;)如果XCache没有任何问题,您可能应该保留它。

我也在使用XCache进行操作码缓存。你说的下一个PHP版本是指PHP6吗?@Joyce:不是,PHP6被取消了。下一个版本可能是PHP5.4。PHP是LRU缓存吗(就像OP想要的)?我从来没有在文档中明确说明过这一点,只是讨论了TTL。@MPD:嗯,APC hat TTL,所以我将其归类为LRU。但我对这个话题了解不多。@Joyce Oops,是的,我是说APC@nikic LRU和TTL缓存不是一回事,也不一定相互排斥。例如,memcached的文档声明缓存为LRU w/expirations。我只是想了解切换到memcache/redis等高级解决方案的优势。我在网上找不到任何东西,因为这不是苹果对苹果的比较。显然不是苹果的比较:)。xCache是一个inproc缓存。Memcached或redis可以帮助您从proc中缓存常用的序列化对象,如页面片段或复杂的数据库查询。它们保持在进程外,因此可以在服务器重新启动时保持。但与xCache相比,它们看起来速度较慢,但可扩展性更强。例如,如果您有多台PHP服务器,则无法在APC中存储会话,因为会话数据将仅存储在一台服务器上,而不是所有服务器上;)