【发布时间】:2012-05-24 09:42:48
【问题描述】:
对于每个 API 调用,我都有一个非常广泛的缓存系统。每个命令和请求参数以及特定的超时都会创建唯一的指纹。
当发出请求并且它没有分配可接受的缓存时间戳时,则发出请求时不会返回缓存,因此程序会自行处理所有事情。其结果以新的时间戳存储在缓存中。
如果发出请求并且请求定义它愿意接受 5 分钟缓存 - 并且系统发现这样 - 然后系统从缓存中返回结果。
这意味着我的每条缓存记录都包含一个键(唯一指纹)、结果和创建时间的时间戳。
当前缓存存储在文件系统中,timestamp 是文件修改时间,这会导致 i/o 请求在更高负载时成为杀手。
阅读了多篇文章后,我意识到建议使用 Memcache 和 Memcached 来减少这些调用。
但 Memcache 和 Memcached 只存储指纹和值。没有时间戳,这在技术上意味着我将失去按需缓存时间戳的接受和灵活性。从技术上讲,我必须开始为每个缓存存储两条记录:
指纹数据和数据 指纹时间和时间戳
..这看起来很脏。有其他选择吗?
【问题讨论】: