php - 在 PHP 中维护 session 的长期辩论

标签 php mysql facebook session

<分区>

我看到很多问题说明在数据库或内存缓存中保存 session 的优缺点。 仍然都有问题,内存缓存不是持久的,如果您将 session 保存在数据库中,这可能是性能问题。(从数据库中检索信息是一项乏味的任务)。如果我有像 Facebook 这样的应用程序,我的偏好应该是什么?

2-如果我使用 DB 选项,这是架构,但考虑到我的用户可以使用不同的 IP 地址从任何位置登录,这将如何帮助我。

CREATE TABLE IF NOT EXISTS  'ci_sessions' (
  session_id varchar(40) DEFAULT '0' NOT NULL,
  ip_address varchar(16) DEFAULT '0' NOT NULL,
  user_agent varchar(50) NOT NULL,
  last_activity int(10) unsigned DEFAULT 0 NOT NULL,
  user_data text NOT NULL,
  PRIMARY KEY (session_id)
);

3- 最后但并非最不重要的一点是,像 Facebook、谷歌这样的大巨头是如何保存用户数据的?

4-除了传统 session 处理之外,任何可以帮助管理的 PHP 库。 如果不是,那将是我继续工作的热门机会。

最佳答案

要通过选择近乎实时地备份到持久存储来获得内存缓存速度的优势,请尝试使用 REDIS:

您可以使用像 MySQL 这样的数据库作为持久存储,并每隔一秒左右进行一次 REDIS 备份...

一些帮助的链接:

关于php - 在 PHP 中维护 session 的长期辩论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21862740/

相关文章:

javascript - 如何使用 AJAX 在 fullcalendar 中克隆事件后更新数据库

php - laravel mysql 显示表

java - 将 netbeans (JAVA) 连接到 MYSQL

Android:成功登录后如何使用 firebase Auth 9.6.1 从 facebook 获取 token ?

facebook - 通过 Facebook API 发送私有(private)消息

php - 阿迪恩错误: [status] => 403 [errorCode] => 010 [message] => Not allowed [errorType] => security

javascript - PHP 评分系统,无需数据库

mysql - 无法启动服务器 : Bind on TCP/IP port: Cannot assign requested address

php - 从一个表中选择不在另一个表中但具有特定条件的记录

django - 在开发服务器上测试 Facebook 应用程序