【问题标题】:PHP => Alternative to session data? [closed]PHP => 替代会话数据? [关闭]
【发布时间】:2012-10-11 21:34:03
【问题描述】:

我有一个 Web 应用程序,其中 Cookie 和会话都很重要。

由于 Web 应用程序在不同的服务器上进行负载平衡,我正在寻找替代存储的建议,以获取所有服务器都能够访问的会话数据。

有些会话可能长达数天。

我想到的解决方案:

  • 原生 PHP 会话(这是我想停止使用的)
  • MySQL 数据库
  • 序列化并写入文件(我想避免这种情况,为了表演)
  • Memcache(但它可能会变得非常大或旧数据被淘汰)

提前致谢!

【问题讨论】:

  • 在我提交答案时问题已关闭。无论如何...我建议您继续使用“本机 PHP 会话”,但写一个 custom session handler。您可以使用任何您想要的数据库......甚至是您可能已经在使用的数据库,用于您的持久性网站数据。

标签: php session session-variables


【解决方案1】:

您可以使用像 Couchbase 或 Redis 这样的无 sql 数据库,这与使用 Memcache 类似,但是它们都具有硬盘持久性,而 Memcache 只是内存中的缓存,因此您会遇到旧数据可能被丢弃的问题当 Memcache 运行到极限时。

【讨论】:

  • Redis 是个好主意。不过根据我的经验,我会因为这种事情远离 Couchbase,因为它并不完全可靠(在巨大的压力下,当记录实际存在时,它通常会返回“未找到”)。 MongoDB 也是一个不错的候选者。
  • 我使用 Redis,它非常好,而且我喜欢 TTL 只适用于记录的事实,因此不会有清理工作的麻烦。曾涉足 Couchbase,整个 GUI/浏览器设置界面让我非常恼火,但除此之外没有太多的烦恼。
【解决方案2】:

我会使用数据库作为替代方案。我过去使用过它,它对我来说效果很好。在选择一个数据库来完成这项任务时,我会选择一个已经是基础设施的一部分并且我知道的东西。换句话说,如果您还不熟悉 NoSQL 数据库,我真的不建议您使用它。我过去曾使用 MySQL 和 Oracle 作为会话存储,它们对我来说是零麻烦的。

但是,如果您对 NoSQL 感到满意,或者想学习它们,那么您可能会朝那个方向发展。底线 - 我会坚持使用我知道的数据库作为备用 PHP 会话存储。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 2011-05-29
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多