gpt4 book ai didi

php - magento session 文件需要保存多长时间?

转载 作者:可可西里 更新时间:2023-11-01 12:26:16 24 4
gpt4 key购买 nike

我有一个客户,他的 magento session 文件正在迅速失去控制。我们每周清理一次,但似乎需要更频繁。

1) 这些文件有什么作用?它们如何与用户的在线体验相关联(例如,如果我删除它们而用户仍在网站上,它们将受到怎样的影响)

2) 我多久可以删除它们?文件真正需要在服务器上保留多长时间?

克里斯

最佳答案

对于基于文件的 session ,它们将由 PHP session 清理 cron 自动修剪——因此文件可能会在创建后约 7200 秒内被删除。因此,即使在一个繁忙的站点(每天 3 万个唯一身份)上,./var/session 中通常也只有大约 4,000 个 session 文件——这对于 Linux 服务器来说不算什么。

然而,清理实际上依赖于 cron 的工作——它通常不会在 Magento 的 ./var/session 目录中查找。所以你应该设置一个新的系统cron

/usr/bin/find /home/myuser/public_html/var/session -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 -exec rm {} \; >/dev/null 2>&1

session 的默认清理时间为 7200 秒,这应该绰绰有余,但您可以更改以上设置以适应。

对于 Memcache session ,TCP/IP 是唯一的开销——对于单服务器部署,这会使其比基于文件的部署更慢。那么,您将改用 unix 套接字,这样可以消除开销并提供更好的安全性。但即便如此,您的客户 session 将被截断/限制为您可以分配的 RAM 量。 Magento session 的平均大小为 4Kb——因此您将能够支持每 MB 分配的 256 个事件 session 。所以一定要设置一个适当的限制,以避免客户随机丢失购物车/ session 。还要记住,Memcache 守护进程重启会清除所有现有 session (糟糕!)。

使用 Redis(不是 native 的,但可以通过扩展获得),您可以获得与 Memcache 类似级别的支持,但具有持久性的额外好处(如果您希望使用它的话)。使用 Cm_Redis 扩展,您还可以利用 session 压缩。我们发现此扩展在 CE 和 EE 部署上都运行良好。

对于 DB,默认的修剪过期设置是一个强大的 1 周,因此以上面的存储大小为例(每天 30k 唯一性),您将看到 core_cache_session 的数据库表大小约为 7GB –对于几乎所有基于 session 的操作,这将使您的商店完全停止运行。

根据托管大型(每天 23 万独立访客)和小型(每天 <1 千独立访客)商店的经验,我们的建议是:

单服务器部署 - 文件

多服务器部署 - Redis(使用独立于 Magento 主缓存的数据库)

我在这里写了一些非常详尽的回复 http://magebase.com/magento-tutorials/magento-session-storage-which-to-choose-and-why/comment-page-1/#comment-1980

关于php - magento session 文件需要保存多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4353875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com