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