Spring Boot 如果没有唯一标识符,如何缓存数据?

axr492tv  于 2023-01-09  发布在  Spring
关注(0)|答案(1)|浏览(122)

我有一个spring-boot应用程序。我有一个方法会泄露一些内容。比如说银行客户。比如说银行客户并不经常添加到数据库中。我如何缓存这个方法,以便只有在新客户添加到数据库中时,这个方法才会跟随新列表进入数据库?
听起来很琐碎,但是我想不出一个机制。就是我们有一个方法说

GET /customers

缓存被调整为请求中的唯一参数。由于此方法没有唯一参数,因此将始终从缓存返回数据,即使客户端列表多添加一个。
例如,你可以想象一个带有布尔响应的方法。当列表更新时,它会返回true。但这看起来是一个糟糕的解决方案。它还意味着**而不是一个请求,你必须同时执行两个请求。如果你还有授权,认证--那就是三个请求。听起来很糟糕。
你能给我个提示吗?

9jyewag0

9jyewag01#

你会该高速缓存存储在哪里呢?有些网站,比如Redis,你可以设置缓存数据的过期时间,所以它会在你设置的每一次过期时间刷新数据。
或者你可以在数据库中存储一些类似“版本”的东西,也可以添加到缓存中。所以每次你添加新的客户,你也会更新版本。然后它可以用来比较数据库和缓存中的版本是否相同,如果不相同,那么就得到新的列表到数据库中,并重新添加到缓存中。但是这种方法需要在每次你点击GET /customers时调用数据库。

相关问题