php - 存储大型 session 是否会减慢响应时间和服务器

标签 php mysql linux facebook session

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

检索 friend 没问题,我正在努力决定如何存储它们。

  1. 选项 1 - 将用户存储在我的 MySQL 数据库中,我选择不这样做,因为我的数据库很快就会变得非常沉重。此外,我需要为每个 Facebook 用户创建一个表!
  2. 选项 2 - 将 Facebook 好友数组存储在每半小时更新一次的 session 中,以确保包括新 friend 。 忽略 session 每半小时更新一次的事实,在 session 中存储一个非常大的数组是不是一个坏主意?

该网站可能会接收大量流量,因此会存储大量此类 session 。

虽然我是一位经验丰富的开发人员,但我对这些情况下的 session 并没有过多的经验。我只是想知道这是否是个坏主意?

只是给你一些关于典型 friend 数组的信息:

  1. 每个数组都是多维的,格式为 {0[uid:1,name:Jo Bloggs,picture:test.jpg],1...}
  2. 好友列表通常包含 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/

相关文章:

php - 如何在 Symfony 4 的 Twig 的 {{ dump() }} 中停用 Xdebug 转储数据的方法

c# - mysql join查询重复返回数据

linux - 关于服务器上多个 JVM 的最佳实践是什么?

database - 技术选择、数据库

php - 如何在不使用 Web 应用程序的情况下在常规 HTML 页面中显示 JavaScript、PHP 和其他 Web 开发语言的源代码?

php - PDO MSSQL 服务器 - 未找到驱动程序

php - mysql php查询CASE根据第一个表中的列选择第二个表中的列

c# - 如何从 MVC Razor 中的两个表返回带有外部连接的 View

mysql - golang mysql exec 占位符 "?"未展开

c - 是否可以成功链接到具有不同导出 API 但具有相同对象名称的静态 linux 库?