我正计划在我的网站中注入一个缓存系统,将在不同的层(数据、表示,可能在其他地方)使用它。作为我的堆栈 LAMP 和我的基础设施 100% 在 AWS 上的云,我认为自然的选择是 Amazon Elasticache(memcached 的托管安装)。但...
令人惊讶的是——对我来说——我发现 memcached 完全缺乏依赖管理。我不需要像 ASP.Net 缓存 SqlDependency 或 FileDependency 这样的“高级”东西,但 memcached 也没有提供简单的其他键依赖,这对于构建大大简化失效过程的依赖树非常有用。
那么,据我所知,memcached 用于许多复杂的系统,我是否遗漏了什么?是否存在使这种缺乏无关紧要的使用模式?
谢谢
按要求更新,我添加了一些伪代码来澄清我的意思
dependency = 'ROOT_KEY';
cache:set(dependency, 0, NEVER_EXPIRE);
expire = 600;
cache:set('key1', obj1, expire, dependency);
cache:set('key2', obj2, expire, dependency);
...
cache:set('keyN', objN, expire, dependency);
//later, when I have to invalidate
cache:remove(dependency); //this will cause all keyX to be invalidated too