PHP:创建某种常见的变量池,PHP代码可以从中获取变量

时间:2013-05-12 06:34:19

标签: php javascript html apache phpmyadmin

我相信PHP,每当用户向后端PHP页面发送请求时,就会启动一对一的通信,即根据用户的请求创建并执行该页面的新实例。

我的问题是,如果每次创建一个新实例,我想创建一个PHP脚本,该脚本在所有实例之间共享,

例如:我想在该脚本中存储几百个随机数(让我们将其命名为pool.php - 一个静态池),并且每次向后端页面(假设为BE.php)发出请求时, BE.php每次请求pool.php返回一个唯一变量,一旦使用了所有变量,我将在pool.php中放入一个逻辑来创建新的变量集

如果我的问题不明确,请告诉我

3 个答案:

答案 0 :(得分:1)

Memcached是一个很好的候选人。

它是一个键/值存储,尽管PHP来来往往仍然存在。您可以从一个PHP脚本编写值并从另一个PHP脚本中读取它们。这不是您正在寻找的,但可以用于相同的目的,并且比连接到其他PHP脚本的套接字更容易处理。

http://memcached.org/

答案 1 :(得分:1)

您可以使用MySQL解决此问题并锁定相关表格。将此变量池保存在单独的表中,然后使用SQL表级锁定来阻止其他请求,直到当前请求完成为止,使用:

SELECT GET_LOCK( 'my_lock', 10 ) AS success

确保检查查询返回1,这意味着您现在有一个锁。如果没有,您的查询会等待锁定超时。

然后执行普通查询,例如检查是否存在非占用变量。如果是这样,通过更新它或其他任何东西来占用它。

然后使用:

释放锁定
DO RELEASE_LOCK( 'my_lock' )

数字10是每个请求在失败前等待的超时。

答案 2 :(得分:1)

Tarun ,您确实知道数据库中有一些名为AUTO_INCREMENT的字段,可用作primary keys用户评论。每次添加新注释时,该字段都会被数据库服务器递增,并且每个新条目都会获得unique ID而不会出汗?

唯一可行的方法是使用数据库和某种Mutex MySQL 的内部Mutex,例如 John Severinson 如果AUTO_INCREMENT字段不够,请说。

PS 性能开销 ...在谈论PHP脚本时,这是一个非问题。如果您需要性能,请使用C / C ++编写站点。你说的是毫秒(0.001秒)或更少。如果这会影响您的表现,您需要重新审视您的项目/逻辑。