存储大型会话会减慢响应时间和服务器

时间:2012-01-30 10:51:20

标签: php mysql linux facebook session

我正在为我的网站创建一个Facebook应用程序,其中包含需要用户朋友列表的功能。

检索朋友是没有问题的,我正在努力决定,是如何存储它们。

  1. 选项1 - 将用户存储在我的MySQL数据库中,我选择不这样做,因为我的数据库会非常繁重,非常快。另外,我需要为每个Facebook用户创建一个表格!
  2. 选项2 - 将Facebook好友阵列存储在每半小时更新一次的会话中,以确保包含新朋友。 忽略会话每半小时更新一次的事实,在会话中存储什么是非常大的数组是个坏主意?
  3. 该网站可能会收到大量流量,因此会存储大量这些会话。

    虽然我是一名经验丰富的开发人员,但在这些情况下,我对会话的经验并不过分。我只想知道这是不是一个坏主意?

    只是为了向您提供有关典型朋友阵列的一些信息:

    1. 每个数组都是多维的,格式为{0 [uid:1,name:Jo Bloggs,picture:test.jpg],1 ...}
    2. 朋友列表的范围通常从100件到5000件,平均约为700件。这些不小!
    3. 如果这是存储朋友的不好方法,还有哪些其他选项(不包括MySQL)?

      会话是否会影响内存(RAM)的使用?

1 个答案:

答案 0 :(得分:1)

根据您的要求,我强烈建议您在服务器上安装MemCacheD。有关详细信息,请参阅:http://memcached.org/

会话仅适用于当前登录的用户,因此在会话之间共享信息会很困难。此外,当会话消失时,用户数据也会消失。

对于memcached数据存储在键/值对中。

因此,对于一个密钥,您可以使用Facebook ID,对于该值,可以使用用户数据的序列化对象。