在请求之间保持变量共享


Keep variable shared among requests

是否有办法在所有请求之间共享一些长计算的结果?

例如,在Ruby on Rails中,所有保存在config/initializers目录中的东西都会在服务器启动时运行一次。然后,如果其中一个初始化器更改,则必须重新启动整个服务器。虽然这会导致一些不受欢迎的事情,比如编辑一些配置,直到你意识到你必须重新启动整个东西才看到更改,但我也可以看到一些用例,例如路由映射。在某些时候,为每个请求填充整个路由映射数组可能会消耗相当一部分服务器时间。

相反,我会在服务器启动时填充数组,并使其保持活动状态直到关机。在PHP中有什么方法可以做到这一点(请不要使用$_SESSION)?

我会尽量把我的评论详细阐述成一个答案,这样它才"值得"被接受。由于您不想使用会话(因为它不是特定于用户的),因此需要将信息存储在"某处"。从技术上讲,你可以在典型的关系数据库(如MySQL或PostgreSQL等)中做到这一点。但是,对于您存储的信息量(次要配置细节等)和访问这些信息的次数(可能是每个请求),将其存储在缓存数据库中是有意义的。这将把你所有的数据存储在RAM中,你可以设置它在特定的时间过期,永远存在,或者在系统重启时擦除它。

  • 复述,
  • memcached
  • PHP的APC