如何在 APC 中管理不同类型的数据?由于 APC 将数据存储在键值对中,如何存储数据以便处理不同类型的对象?例如,我想存储会话数据以及其他一些缓存对象。
最初我正在考虑将类名附加到 id 以将其存储为键和对象作为值。我相信有比这更好的方法。
如何在 APC 中管理不同类型的数据?由于 APC 将数据存储在键值对中,如何存储数据以便处理不同类型的对象?例如,我想存储会话数据以及其他一些缓存对象。
最初我正在考虑将类名附加到 id 以将其存储为键和对象作为值。我相信有比这更好的方法。
好吧,APC 使用键值系统存储值。如果要存储会话,则每个 APC 密钥必须是唯一的。sessid_
由于会话密钥已经是唯一的,因此它应该不会比在 id前添加类似的内容更困难:
$key = 'sessid_'.session_id();
apc_add($key, $value, 3600 * 6);
虽然 APC 可能工作正常,但它可能不是最好的存储机制。APC 的数据存储更适合存储常用数据,例如常量、配置、计数器、全局使用的字符串等。此外,当您将内容存储在 APC 中时,数据会被序列化,然后每次读取和写入数据时都会被反序列化。看到会话通常包含在数组或对象之类的东西中,这不是最佳的。
会话转瞬即逝,通常会根据需要发生很大变化。缓存内容的重点是您打算读取数据比写入数据要多得多。如果会话数据经常更改(例如用户上次活动的时间,他们登录或退出的频率等),那么它就无法实现缓存它的目的。在这种情况下,数据库可能更合适。而且它不需要是好的旧 MySQL。那里有很多种数据库。有些比其他更适合。