使用带有选项的分布式缓存来处理Cache Miss

时间:2015-01-26 03:40:05

标签: java caching redis memcached distributed-caching

我的用例如下:

应用程序客户端使用分布式缓存(Memcached / Redis / etc)来缓存数据库输出。我想在应用程序客户端中添加一个隐藏的功能 - 如何处理缓存缺失 例如应用程序客户端只是要求获取分布式缓存的密钥值(不知道数据库详细信息)。现在,它希望分布式缓存处理缓存未命中 - 从Relational DB获取数据并缓存它。

似乎Redis / Memcached没有提供这样的功能。我是否遗漏了某些内容,或者我应该查看此用例的其他工具/框架。

1 个答案:

答案 0 :(得分:2)

您需要使用直读/直写缓存模式,其中客户端应用程序将缓存视为主数据存储,并对缓存执行所有读写操作。另一方面,缓存将负责使用部署的直读/直写提供程序将自身与数据库同步。

在读取操作中,如果缓存中不存在数据,缓存本身将从数据库加载数据,从而避免缓存未命中。

阅读Iqbal Khan的this article,了解有关直读/后写缓存的更多详情。

Alachisoft在TayzGrid中提供了此功能。 NCache的Java客户端也提供此功能。