【发布时间】:2012-10-24 04:51:31
【问题描述】:
我正计划在我的网站中注入一个缓存系统,将在不同的层(数据、表示,可能在其他地方)使用它。作为我的堆栈 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
【问题讨论】:
-
您能否举例说明您计划如何与应用程序中的缓存进行交互?我想我没有遵循“其他键依赖”的意思。
-
我用一些伪代码更新了问题
标签: caching architecture amazon-web-services memcached