Php 如何跨多个实例分派事件?

Php 如何跨多个实例分派事件?,php,events,message-queue,shared-memory,Php,Events,Message Queue,Shared Memory,我目前正在一个实例中管理的PHP“事件”。这很好地工作,并且在我的系统中使用类似于的东西正确地实现了 我现在的问题涉及一个系统,在这个系统中,我需要跨不同的实例/用户分派事件 例如,我有一个由多个用户组成的帐户。初始加载应用程序后,每个用户都在会话中缓存帐户设置。 现在,如果一个用户正在修改帐户设置,我想向我的其他用户发送一个事件,以便他们更新这些设置 目前,我正在考虑这些解决方案: 将事件存储在数据库表中,每个用户定期检查值,但这将需要额外的SQL负载,并使缓存系统过时 另一个解决方案是使用R

我目前正在一个实例中管理的PHP“事件”。这很好地工作,并且在我的系统中使用类似于的东西正确地实现了

我现在的问题涉及一个系统,在这个系统中,我需要跨不同的实例/用户分派事件

例如,我有一个由多个用户组成的帐户。初始加载应用程序后,每个用户都在会话中缓存帐户设置。 现在,如果一个用户正在修改帐户设置,我想向我的其他用户发送一个事件,以便他们更新这些设置

目前,我正在考虑这些解决方案:

  • 将事件存储在数据库表中,每个用户定期检查值,但这将需要额外的SQL负载,并使缓存系统过时
  • 另一个解决方案是使用REDIS存储一个标志。每个用户都可以定期检查标志的值,并在需要时重新加载设置。它与上面的SQL解决方案类似,但使用REDIS将更加高效。然而,实现将更加复杂,并且它可能是为这个特定事件定制的
  • 我还开始研究在PHP实例之间共享数据的方法,发现了这一点,这表明使用共享内存。我对这个概念不是很熟悉,我还在研究它,但我认为可以使用它构建一个跨实例事件系统
  • 在PHP中使用memcached服务器。我不熟悉这一点,但仍在评估围绕它构建事件调度程序系统的可能性
  • 使用。仍在评估可能性,并检查PHP中现有的基于事件的系统是否使用它构建
  • 是否有其他解决方案可用于在实例之间分派此类事件

    编辑
    方案3已被拒绝。如果共享内存在同一台服务器上完成,我正在为应用程序端使用服务器群集。

    您可以将哈希存储在数据库或文件中,并将哈希也放在会话中。如果哈希值不同,则使用数据库中的设置重新生成会话。我使用的是集群应用程序类型,多个服务器处理应用程序端,因此我更希望避免使用文件。在数据库中使用散列来标识配置版本是一个好主意,但需要常规SQL调用。在这种情况下,将REDIS用于此目的(解决方案2)似乎是最合适的。