【发布时间】:2014-02-14 04:13:29
【问题描述】:
我在溢出中看到了许多类似的问题,但没有一个真正解决了我的情况,因此我打开了这个问题。
我正在从事一个项目,其中有数千个 mp3 曲目和混音的数据库。每个 mp3 文件都有一个 id 和有关数据库的相关信息。现在正在以用户可以选择曲目并添加到购物车的方式构建购物车。当将曲目添加到购物车时,其 id 会存储在会话中,并且可以正常工作。
现在,当会话中存储大量 id 时,问题就来了。一个会话是一个 cookie [codeignitor],我知道它有 4kb 的存储空间。
保存这些数据的最佳做法是什么?我知道我必须改变我的策略并停止使用会话。
我尝试使用数据库[mysql],它不仅速度较慢而且有几个问题,比如每个新用户需要在数据库表中添加一行,使用后如何清除这些表......等等等等。
我尝试使用 memcached,但我认为这不是正确的选择,因为我尝试存储的数据并没有那么大。 memcached 在 windows 平台上也有几个问题,前提是我不确定客户端是否会将它部署在 linux/windows 服务器上。
我需要一个原生的跨平台解决方案。我做了很多研究,但还没有找到可靠的解决方案。
我使用 codeigniter 框架,因此您可以建议任何 PHP 或 codeigniter 解决方案,非常感谢。
【问题讨论】:
-
是否有某些原因您不想将购物车的实际内容存储在数据库中,以会话或用户名为关键字,并且只在 cookie 中携带最少的会话信息?跨度>
-
我了解到问题是由 Codeignitor 会话而不是本机 PHP 会话引起的。由于 Codeignitor 会话基本上是一个 cookie。它具有 cookie 的所有限制。
标签: php database codeigniter session optimization