And*_* R. 9 php memcached shared-memory
有没有办法使用PHP将小数据存储在RAM内存中,这样我就可以访问不同会话之间的数据而不是重新生成它.类似于memcached的东西(我无法访问memcahced).我目前的解决方案是将数据保存在文件中.
Str*_*rae 12
APC?
它与memcached不同; 在memcached中,您可以访问各种语言(c,python等)的数据,而APC仅适用于PHP.
编辑你确定APC安装正确吗?你有没有添加extension=apc.so
你的php.ini?并重新启动apache(我假设你在使用apache2的灯服务器上)?你phpinfo();
对APC怎么说?
这是一个完全适合我的简单测试:
<?php
/*
* page.php
* Store the variable for 30 seconds,
* see http://it.php.net/manual/en/function.apc-add.php
* */
if(apc_add('foo', 'bar', 30)){
header('Location: page2.php');
}else{
die("Cant add foo to apc!");
}
<?php
/*
* page2.php
* */
echo 'foo is been set as: ' . apc_fetch('foo');
Run Code Online (Sandbox Code Playgroud)
PS:我更喜欢使用apc_add
过apc_store
,但它们之间的唯一区别是,apc_add犯规覆盖可变的,但如果使用相同的密钥称为两次将失败:
使用此名称存储变量.密钥是缓存唯一的,因此尝试使用apc_add()来存储具有已存在密钥的数据将不会覆盖现有数据,而是返回FALSE.(这是apc_add()和apc_store()之间的唯一区别.)
这是脚本的品味/任务问题,但上面的例子也适用于apc_store.
我假设您位于某种共享服务器上。
memcached
或其他缓存解决方案确实是做到这一点的唯一方法。
会话是跨 PHP 页面保存数据的最重要方法,它基于文件工作。您可以将会话处理程序更改为基于数据库,但这也不是基于 RAM。
据我所知,如果不更改根级别的系统(例如安装memcached,或将会话文件存储在RAM 磁盘上),这是不可能的。
归档时间: |
|
查看次数: |
12508 次 |
最近记录: |