2013-03-04 66 views
0

如何在APC中管理不同类型的数据?由于APC将数据存储在关键值对中,因此如何存储数据以便可以处理不同类型的对象? 例如,我想存储会话数据以及其他一些缓存对象。如何管理APC中的数据

最初我正在考虑追加带ID的类名来存储它作为键和对象作为值。我相信有比这更好的方法。

回答

0

那么,APC使用键值系统存储值。如果要存储会话,则每个APC密钥必须是唯一的。由于会话密钥已经是独一无二的它不应该比前面加上像sessid_的ID更加困难:

$key = 'sessid_'.session_id(); 
apc_add($key, $value, 3600 * 6); 

虽然APC将可能工作好了,它可能但不是最好的存储机制。 APC的数据存储更倾向于存储常用数据,如常量,配置,计数器,全局使用的字符串等。此外,当您将数据存储在APC中时,数据会被序列化,然后在您每次读写数据时都会进行反序列化。由于会话通常包含在数组或对象中,因此这不是最佳选择。

会话稍纵即逝,通常会根据需要进行更改。缓存点的东西是你打算读取的数据比你的写的多了很多。如果会话数据经常发生变化(例如用户最后一次活跃,登录或退出的频率等),那么它就会失去缓存它的目的。在这种情况下,数据库可能更适合。而且它不需要成为老的MySQL。那里有很多种数据库;有些比其他更适合。

+0

除会话使用假设我想要存储不同的配置文件以及缓存的对象(从数据库中提取并用于页面呈现)。我想要一些对象来管理其他cacheObject(apc cache)。我忘了设计模式名称。据我记得,有这样的事情。 – varuog 2013-03-04 09:11:20