PHP:创建某种公共变量池,PHP代码可以从中挑选变量
PHP: Creating some sort of common pool of variables from where php code can pick up variables
我相信在PHP中,每当用户向后端PHP页面发送请求时,都有一个一对一的通信开始,也就是说,该页面的新实例被创建并根据用户的请求执行。
我的问题是,如果每次创建一个新实例,我想创建一个PHP脚本,它在所有实例之间共享,
例如:我想在该脚本中存储几百个随机数(让它命名为pool.php -静态池),每次请求后端页面(让我们说BE.php), BE.php请求pool.php每次返回一个唯一的变量,一旦所有变量都被使用,我将在pool.php中放入逻辑来创建一组新的变量
如果我的问题不清楚,请告诉我
Memcached是一个很好的候选。
它是一个键/值存储,尽管PHP来来去去,它仍然存在。可以从一个PHP脚本写入值,然后从另一个PHP脚本读取值。这不是您想要的,但可以用于相同的目的,并且比连接到其他PHP脚本的套接字更容易处理。
http://memcached.org/您可以使用MySQL并锁定问题表来解决这个问题。将此变量池保存在单独的表中,然后使用SQL表级锁来阻止其他请求,直到当前请求完成,使用以下命令:
SELECT GET_LOCK( 'my_lock', 10 ) AS success
确保检查查询是否返回1,这意味着您现在有一个锁。如果没有,那么您的查询将超时等待锁。
然后执行普通查询,例如检查是否存在未被占用的变量。如果是的话,通过更新或其他方式占用它。
释放锁,使用:
DO RELEASE_LOCK( 'my_lock' )
数字10是每个请求在失败之前等待的超时。
Tarun,您确实知道数据库有一些称为AUTO_INCREMENT
字段的东西,可以用作用户评论的primary keys
。每次添加新评论时,数据库服务器都会增加该字段的值,并且每个新条目都可以轻松获得unique ID
?
唯一可行的方法是使用数据库和某种Mutex
或MySQL的内部Mutex
如John Severinson说,如果AUTO_INCREMENT
字段将不够。
p : 性能开销…当谈论PHP脚本是一种没有问题。如果你需要性能,用C/c++编写你的站点。您谈论的是毫秒(0.001秒)或更短。如果这将影响您的性能,您需要重新审视您的项目/逻辑。
- 将PHP变量传递给jQuery时遇到问题
- 通过javascript重定向html传递php变量
- 如何在php变量中嵌入JQuery代码
- 在javascript函数中使用php变量
- 将地理编码结果转换为php变量以发布到mysql数据库
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 从Javascript和Php变量创建Html模板文档
- 如何将php变量作为javascript中列表的元素
- 将PHP变量分配给PHP数组
- 如何在没有ajax的情况下将javascript动态数据发送到php变量
- 在Javascript甜甜圈图的PHP变量中引用PHP变量
- 使用javascript访问php变量
- 在Javascript文件中获取PHP变量
- 如何为Javascript数组()的使用准备PHP变量
- 如何获取PHP变量数据并将其存储在JavaScript变量中
- Javascript变量到PHP变量-如果语句不起作用,则发布
- 通过Javascript验证PHP变量
- 如何将Ajax数据值分配给PHP变量
- 如何在 bootsrap 完整日历中使用 PHP 变量
- 在javascript中调用PHP变量