如何在APC中管理数据

时间:2013-03-04 06:08:00

标签: php design-patterns apc

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

最初我想添加带有id的类名,将其存储为key,将对象存储为value。我相信有更好的方法。

1 个答案:

答案 0 :(得分:0)

嗯,APC使用键值系统存储值。如果要存储会话,则每个APC密钥必须是唯一的。由于会话密钥已经是唯一的,因此将sessid_之类的内容添加到id中应该不难:

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

虽然APC可能会正常工作,但它可能不是最好的存储机制。 APC的数据存储更适合存储常用数据,例如常量,配置,计数器,全局使用的字符串等。此外,当您在APC中存储内容时,数据会被序列化,然后在每次读取和写入时都会反序列化。看到会话通常包含在类似数组或对象的内容中,这不是最佳选择。

根据需要,会话稍纵即逝,通常会发生很大变化。缓存的关键是你打算读取数据比你它更多。如果会话数据经常更改(例如用户上次活动时,他们登录或退出的频率等),那么它就会失去缓存它的目的。在这种情况下,数据库可能更适合。而且它不需要是好老的MySQL。那里有很多种数据库;有些人比其他人更适合。