我正在为我的网站创建一个 Facebook 应用程序,其中包含需要用户好友列表的功能。
检索 friend 没问题,我正在努力决定如何存储它们。
- 选项 1 - 将用户存储在我的 MySQL 数据库中,我选择不这样做,因为我的数据库很快就会变得非常沉重。此外,我需要为每个 Facebook 用户创建一个表!
- 选项 2 - 将 Facebook 好友数组存储在每半小时更新一次的 session 中,以确保包括新 friend 。 忽略 session 每半小时更新一次的事实,在 session 中存储一个非常大的数组是不是一个坏主意?
该网站可能会接收大量流量,因此会存储大量此类 session 。
虽然我是一位经验丰富的开发人员,但我对这些情况下的 session 并没有过多的经验。我只是想知道这是否是个坏主意?
只是给你一些关于典型 friend 数组的信息:
- 每个数组都是多维的,格式为 {0[uid:1,name:Jo Bloggs,picture:test.jpg],1...}
- 好友列表通常包含 100 项到 5000 项,但平均约为 700 项。数量不小!
如果这是存储好友的糟糕方法,还有哪些其他选项(不包括 MySQL)?
session 对内存 (RAM) 使用有影响吗?
最佳答案
根据您的要求,我强烈建议在您的服务器上安装 MemCacheD。请参阅:http://memcached.org/获取更多信息。
session 仅适用于当前登录的用户,因此在 session 之间很难共享信息。此外,当 session 消失时,用户数据也会消失。
对于 memcached 数据存储在键/值对中。
因此对于键,您可以使用 facebook ID,对于值,用户数据的序列化对象。
关于php - 存储大型 session 是否会减慢响应时间和服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062703/