用户登录时存储数据?

时间:2013-12-04 23:00:23

标签: php mysql

我有一个用户登录的网站,然后我想加载很多关于他/她的信息。我想加载他们所关注的人的所有id。我使用$_SESSION来存储用户ID /其他基本内容,但我担心对于数组我还需要别的东西来不浪费服务器上的空间。我想过饼干,但我不知道这是不是一个好主意。如果不占用服务器空间,我可以使用什么来安全地存储阵列?

2 个答案:

答案 0 :(得分:0)

简短回答:您无法在客户端安全存储任何内容(Cookie,本地存储等)。

在会话中存储标识符(用户标识),并在每次加载页面时查询数据库。

如果您担心性能问题,则应考虑缓存模板。

编辑:我看到你提到这是一项社交服务。 Here's a post from Facebook about their use of memcached.其他用户include YouTube, Reddit, Twitter, Tumblr and Wikipedia.

答案 1 :(得分:0)

如果您担心空间会话(会话文件)是最好的方法。其他解决方案可以将会话存储在内存中,这可能会更快,但您只有少量的RAM。会话文件存储在硬盘上,硬盘空间应该便宜且充足。

如果您的会话文件非常大,则应考虑使用igbinary序列化会话数据。虽然普通会话数据是纯文本格式,但是igbinary数据的二进制格式要小得多。 Igbinary is available on PECL

  

预计存储需求将减少约50%。具体   数量取决于您的数据。


将数据放入cookie中是一个坏主意。 Cookie数据在每个请求上来回发送。大饼干意味着大量的流量和缓慢的网站。