【问题标题】:Is it a bad idea to store my 6 months expirations sessions in database?将我的 6 个月到期会话存储在数据库中是一个坏主意吗?
【发布时间】:2011-10-03 16:53:35
【问题描述】:

我有大约 500,000 名唯一身份访问者,我希望我的访问者能够像使用 StackOverflow 一样使用我的网站。我的意思是你不需要注册,但你有一个存储一些偏好的帐户。

为此,我为想要注册的用户创建了一个成员,但是我设置了一些虚拟值,例如 user1234 作为用户名和一个访客角色。

我希望他们能够在没有注册的情况下使用它,但不是无限的,这对我来说毫无意义,所以我想例如每 6 个月清除一次。

但是,如果我计划大量流量,它可能会有点重。

有人告诉我,我可以在 MySQL 前面使用 memcached;这是个好主意吗? 你将如何实现这样的事情?

顺便说一句,这意味着我的成员数据库中的成员数量可能会增长太多,那么我也需要清除它。

你怎么看?

【问题讨论】:

  • 每天 500,000 个唯一身份?月?年份?
  • @harkre,我知道这就是我选择将它们存储在数据库中的原因,但我的想法是使用 mysql behing memcached 来避免负载,但不确定。
  • @Brad,六个月没有,但我们要去美国市场,可能是每个月:)
  • 没人知道你的网站。没有人能告诉你什么是合适的。你需要自己找出答案。
  • 嗯,它有点像 SO,如果你来了,你不需要注册来提问,只要你问一个问题,一个用户就会被创建一个关联的 cookie,它一年后到期。

标签: php database performance session


【解决方案1】:

所以您希望这些匿名访问者中的每一个 在不注册六个月的情况下潜伏在您的网站周围?我非常怀疑即使是百分之一的潜伏者也会愿意这样做。

我只是保持简单并将该数据存储在$_SESSION 变量中。如果匿名用户想要保留他们的偏好,那么他们应该注册。您无需为了适应懒惰的用户而对网站的性能征税...

【讨论】:

  • 嗯,我们检查了统计数据,我们想鼓励用户注册,我们看到很多人继续访问我们的网站而没有注册,他们可以保留他们的投票和一些收藏,所以是的,每个访客都是我们应该照顾的匿名成员。
  • 顺便说一句,我实际上使用的是 $_SESSION,我只是将会话处理程序更改为使用数据库。
  • @Trent:也许这些用户没有注册的原因是因为你没有给他们太多注册的理由。实施您认为可行的方法取决于您,所以我只是提出一个建议。
  • 我完全同意你的观点,但是有时即使是有吸引力的网站也会有未注册的用户,对于那些我仍然需要让他们保持会话的人,这就是它的工作原理。因此,如果我的网站没有太多流量,这不是问题,但流量越来越大
  • 好吧,我能做的就是建议:P
【解决方案2】:

如何在客户端保存一个cookie来存储用户的偏好?

【讨论】:

  • 好吧,任何人都可以轻松更改 cookie 以及您的网站,这不是保存个人或安全信息的好选择。但是,如果您不介意安全或隐私(可以公开的设置或偏好),那么请务必继续进行,只要确保您进行了很多验证!
  • 嗨,这背后的想法是我可以像对待其他用户一样与我的客人一起工作,我的所有方法都适用于用户,无论他是客人、会员还是一个管理员,顺便说一下,它是存储投票的协作网站,如果用户清理他的会话,我们不太关心是否投票两次。
猜你喜欢
  • 2018-10-17
  • 2010-10-30
  • 1970-01-01
  • 2019-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 2022-10-14
相关资源
最近更新 更多