什么是用户空间缓存PHP中的APCu扩展?

ton*_*nix 25 php opcache

大家好,只是一个与OPcache相关的问题,因为我不理解它并在Google上找到答案:

当我们谈论用户空间缓存时,它意味着什么?我知道PHP预先与新的Zend OPcache扩展捆绑在一起,并且这个扩展将操作代码缓存到ram中,以免过多地压缩处理器,该处理器应该在每次请求时转换为操作码的操作码,但是当APCu时他们说它实现了用户区域缓存?

什么是用户空间缓存?是否可以将APCu和Zend OPcache保持在一起?应该使用Zend OPcache而不是APCu吗?

感谢您的关注,希望有人能够澄清我的疑惑!

Ter*_*ryE 28

APCu真的是由Joe Watkins为回应OPcache而开发的.APC支持操作码缓存和数据缓存,但自PHP 5.4以来一直支持操作码缓存中的稳定性问题.在Zend Inc打开Opcache源并将其置于PHP许可证之后,它成为PHP 5.5的核心和首选操作码缓存. 它只支持操作码缓存而不支持数据缓存.

Joe的APCu实质上是APC的剥离版本,仅包含数据缓存代码,如果您需要数据缓存,可以与OpCache一起使用.

请注意,虽然Opcode缓存在源代码级别是透明的,但数据缓存却不是.您的应用程序需要明确编码才能使用它.(虽然标准的PHP应用程序,如Wordpress,Drupal,phpBB,MediaWiki,......默认包含此支持).

  • 类似但不同之处在于,Memcached是进程外和RPC支持的,因此可以进行群集,并且本质上更具可伸缩性 - 尽管每次调用开销更大.APCu使用共享内存区域和PostgreSQL自旋锁库,因此大多数API调用都在进程中,没有等待,因此非常轻量级 - 但在服务器外部不可扩展. (6认同)
  • 那么APCu实现了内存数据缓存功能,如Memcached缓存系统?我对么? (3认同)
  • 自旋锁是一个选项,不是默认值。rwlocks是默认值,互斥锁回退为默认值,spinlocks后退以处理共享的互斥锁。 (2认同)