inmemory缓存在第二事务中的误用

fcwjkofz  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(154)

我们在JavaSpringBoot中使用hazelcast内存缓存。
我的同事滥用了缓存,我不知道如何从设计的Angular 让管理层相信他错了。我根据我的案例精心制作了一个例子。
BookApicController正在从前端获取值bookid。
bookdetails存储库需要bookid和isbn作为参数。我的同事不是从前端获取isbn的值,而是从以前的缓存事务获取isbn的值。
他就是这样做的

//BookApiController
getBookDetails(string bookid) {
service.getBookDetails(bookid);
}

//BookApiService
getBookDetails(string bookid) {
books= cachedBooks()   <---- assume this will always be cached 1 min earlier in prev transaction
repo.getBookDetails(bookid, books[0].isbn)
}

@Cacheable(cacheNames = CacheConfig.Books, key= SIMPLE_CACHE_KEY, sync=true)
public cachedBooks()
{
//Lots of backend calls and heavy work here
}

我的观点是,前端已经有了isbn值,它只需将值传递给控制器,而不用使用缓存,就像这样简单

//BooksApiController
getBookDetails(string bookid, string isbn) {
service.getBookDetails(bookid,isbn)
}

    //BookApiService
    getBookDetails(string bookid, string isbn) {
    repo.getBookDetails(bookid, isbn)
    }

他只是误用了缓存,他已经在一些地方这样做了。我们有什么缓存设计指南吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题