我有一个春季启动应用程序。我有一个方法给出一些内容。比如说银行客户。假设银行客户不经常添加到数据库中。如何缓存当新客户添加到时,该方法只跟随新列表到数据库
?听起来很琐碎,但我想不出一个机制。也就是说,我们有一个方法
GET /customers
缓存被调优到请求中的唯一参数。因为这个方法没有唯一的参数,所以数据总是从缓存返回,即使客户端列表额外添加了一个。
例如,您可以考虑一些具有布尔响应的方法。。当列表更新时,它将返回true。但这看起来是个棘手的解决方案。这也意味着不是一个请求而是同时处理两个请求。如果你还有授权,认证,那就是三个请求。听起来很糟糕。你能给我一个提示吗?
将缓存存储在哪里?其中一些,比如Redis,你可以设置缓存数据的过期时间。因此,它将刷新数据,每次您设置。
或者你可以在数据库中存储像'version'这样的东西,也可以添加到缓存中。每次你添加新客户,你也会更新版本。然后它可以用来比较数据库和缓存中的版本是否相同,如果不相同,则获取新的列表到数据库并重新添加到缓存中。但是这种方法需要在每次访问GET/customers时调用db。