使用带有选项的分布式缓存来处理缓存未命中
Using Distributed Cache with option to handle Cache Miss
我的用例如下:
应用程序客户端使用分布式缓存 (Memcached/Redis/etc) 来缓存数据库输出。我想再添加一项对应用程序客户端隐藏的功能——如何处理缓存未命中
例如应用程序客户端只要求获取分布式缓存的键值(不知道数据库详细信息)。现在,它希望分布式缓存处理缓存未命中 - 从关系数据库获取数据并缓存它。
好像Redis/Memcached没有提供这样的功能。我是不是遗漏了什么,或者我应该为这个用例查看其他 tool/framework。
您需要使用 read-through/write-through 缓存模式,其中客户端应用程序会将缓存视为主要数据存储并在缓存上执行所有读写操作。另一方面,缓存将负责使用已部署的 read-through/write-through 提供程序将自身与数据库同步。
如果缓存中不存在数据,则在读取操作时,缓存会自行从数据库加载数据,避免缓存未命中。
阅读 Iqbal Khan 的 this article 以了解有关 read-through/write-behind 缓存的更多详细信息。
我的用例如下:
应用程序客户端使用分布式缓存 (Memcached/Redis/etc) 来缓存数据库输出。我想再添加一项对应用程序客户端隐藏的功能——如何处理缓存未命中 例如应用程序客户端只要求获取分布式缓存的键值(不知道数据库详细信息)。现在,它希望分布式缓存处理缓存未命中 - 从关系数据库获取数据并缓存它。
好像Redis/Memcached没有提供这样的功能。我是不是遗漏了什么,或者我应该为这个用例查看其他 tool/framework。
您需要使用 read-through/write-through 缓存模式,其中客户端应用程序会将缓存视为主要数据存储并在缓存上执行所有读写操作。另一方面,缓存将负责使用已部署的 read-through/write-through 提供程序将自身与数据库同步。
如果缓存中不存在数据,则在读取操作时,缓存会自行从数据库加载数据,避免缓存未命中。
阅读 Iqbal Khan 的 this article 以了解有关 read-through/write-behind 缓存的更多详细信息。