基于PHP Memcache(d)的会话:是否应禁用垃圾收集?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了基于PHP Memcache(d)的会话:是否应禁用垃圾收集?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
当使用PECL的memcached(或内存缓存我想..)扩展,应该 PHP的会话垃圾收集(如:session.gc_PRobabilITy合/ session.gc_divisor)被设置为0的概率被禁用?

由于以下原因,这可能是合乎逻辑的:

A)通过在存储的密钥上设置到期时间,最有可能简单地存储会话到期时间. EG:每个会话都有一个到期时间TTL,并在memcached到期时简单地清除它.

B)冲洗掉现有还没有被清除的memcached的本身会话,memcached的扩大就必须尽一切存储在内存缓存守护程序将数据完全转储,检查每一个关键看钥匙的匹配所定义模式,然后检查添加密钥的时间,最后根据需要删除.这不太可能是由于以下原因:1)据我所知,没有什么可以告诉你什么时候将密钥添加到memcache.只有当它到期时. 2)转储解析在memcache实例上会超级重.

那么,很有可能memcache(d)pecl扩展只是禁用PHP的会话垃圾收集?

谢谢.

解决方法

PHP ini设置session.gc_maxlifetime定义会话条目的到期时间.如果禁用此选项,您的会话将永远处于活动状态.

如果您查看Memcached代码,很容易发现行为(即使您不理解C):https://github.com/php-memcached-dev/php-memcached/blob/e781e169871fd4f14f844ce3e01860e84ec28831/php_memcached_session.c#L325-L327

认情况下,过期时间设置为0,并且仅在PHP ini设置session.gc_maxlifetime设置为大于0时才设置.仅因为设置包含gc并未说明这与PHP会话垃圾回收有关. Memcached扩展只是解释了这个选项,因为它可以使用它.如果使用Memcached,则不需要PHP垃圾回收,因为它会自行清理并且扩展本身禁用垃圾收集.

但你仍然需要设置设置!

脚本宝典总结

以上是脚本宝典为你收集整理的基于PHP Memcache(d)的会话:是否应禁用垃圾收集?全部内容,希望文章能够帮你解决基于PHP Memcache(d)的会话:是否应禁用垃圾收集?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。