Php 社交网站上的用户会话-逻辑问题

Php 社交网站上的用户会话-逻辑问题,php,database,session,codeigniter,Php,Database,Session,Codeigniter,我在PHP Codeignator和MySQL中开发了一个社交网站。我将用户会话存储在数据库中,以处理多服务器环境。目前只有一个数据库 1) 要处理多个数据库(+多服务器),如何以及在何处存储用户会话?我假设数据库不能在多数据库环境中工作 2) 给用户的会话ID是数据库自动递增还是应用程序逻辑生成的?我想应该是GUID 3) 除了会话ID之外,我还有一个用户会话表,它记录了所有与会话相关的详细信息,如登录日期时间、注销数据时间、用户是否在web/mobile上等。因此,必须分两个阶段写入此表:用

我在PHP Codeignator和MySQL中开发了一个社交网站。我将用户会话存储在数据库中,以处理多服务器环境。目前只有一个数据库

1) 要处理多个数据库(+多服务器),如何以及在何处存储用户会话?我假设数据库不能在多数据库环境中工作

2) 给用户的会话ID是数据库自动递增还是应用程序逻辑生成的?我想应该是GUID


3) 除了会话ID之外,我还有一个用户会话表,它记录了所有与会话相关的详细信息,如登录日期时间、注销数据时间、用户是否在web/mobile上等。因此,必须分两个阶段写入此表:用户登录时和用户登录时。问题是当用户登录时,系统应该遵循什么逻辑来写入日期?例如,系统如何知道将数据写入哪个用户会话,因为此PK ID是数据库驱动的自动递增值,并且是在创建主会话ID之后创建的。因此,最后需要查询用户会话表以找到用户会话ID,然后进行写入。

您的评论为我提供了一些关于解决此问题的最佳方法的线索

首先,如果网站即将上线,但尚未上线,解决问题的最佳方法是:暂时不要担心这个问题。暂时只需在一台服务器上用一个数据库托管所有内容。无论您的想法多么出色,都需要在需求增长到足以需要更多硬件之前,解决其最初几个真正用户的许多问题

其次,您的图像和视频服务器可能不需要用户的会话信息。如果用户请求包含视频的网页,并且他们有足够的权限查看该网页,那么您可能只需发送视频,而无需进一步验证。这一选择还将使您能够使用内容交付网络(我个人喜欢,与Akamai有合作伙伴关系),与使用自己的服务器相比,大大改善用户体验


祝你好运

您是否使用过默认的PHP会话机制?在数据库中存储用户会话与多服务器环境有何关系?为什么defau8lt PHP会话不适合您?无论如何多数据库环境有什么问题?您在这里看到了什么特别的问题?在会话中使用memcached效果很好。我从未使用memcache存储会话。该网站即将上线,尚未上线。在数据库中存储会话是指如果有多个数据库,并且会话存储在数据库A中,那么在2小时后关闭rlogs时,系统需要从数据库A和数据库B中获取ID。因此需要知道。多台服务器也是如此。一个是web服务器,一个是图像服务器,一个是视频服务器,等等。每个服务器都需要检查用户的会话,该会话需要相同,因为所有用户活动都链接到同一会话imp方面是我需要用户的上次活动日期时间来写入会话注销日期,因此,我需要知道如何在用户注销时找到其会话,系统如何在表中找到它?我将很快拥有多个数据库,因为对于启动,我有一个用于用户数据的数据库,第二个用于用户分析的数据仓库,它将数据输出到同一个用户会话。因此,我需要确保在创建会话时,在会话期间,这两个数据库都可以重新确认相同的用户会话,因为每个用户活动都映射到会话ID,并且在会话结束时,因为最后一个活动日期时间或用户注销被写入会话结束日期时间。所以我认为memcache是唯一正确的方法?为什么不在同一个数据库中有一个用户数据表和另一个用户分析表?