当前位置: 首页 > 知识库问答 >
问题:

有没有办法将响应实体存储在redis缓存中?

谢锦程
2023-03-14

我尝试了以下代码,但出现了错误-spring web ResponseEntity无法序列化。

org.springframework.data.redis.serializer.SerializationException:无法序列化;嵌套异常org.springframework.core.serializer.support.SerializationFailedException:无法使用DefaultSerializer序列化对象;嵌套异常java.lang.IllegalArgumentException:DefaultSerializer需要可序列化的有效负载,但收到了类型为[org.springframework.http.响应实体]的对象

尝试了以下代码:

java prettyprint-override">@Override

@Transactional

@Cacheable(value = "mostFollowedSub", key = "{#root.methodName, #offset, #limit}" )
    public ResponseEntity<Response> mostFollowedSubCategory(int offset, int limit) {
        return subCategoryDao.getMostFollowedSubCategory(offset, limit);
    }

共有1个答案

危烨煜
2023-03-14

响应性不可序列化。更好的方法是在服务/DAO层缓存(在您的示例中,是子类别DAO的方法)。

 类似资料:
  • 我用雷迪森换雷迪斯。我已经在我的本地系统上安装了Redis。我已经编写了以下代码并运行了它: 但是,当我进入redis-cli并尝试检索该键时,我得到这是为什么?为什么它不把数据推入Redis?

  • 我要和服务人员一起建立我的preactjs网站。 使用Sw precache插件 我只是查看它存储在缓存存储中的缓存项,我期望的条目都在那里,但它们有一个空响应。 我与服务人员检查了其他一些网站,并注意到他们的条目有“OK”的响应。 只是想知道是什么触发了缓存响应说“OK”而不是空白。 我发现的另一个例子是,有些人返回OK,其他人返回空白

  • 我已经在一台主机上安装了一个带有NGINX的Ubuntu实例,并将其配置为另一台主机上我的应用程序的转发代理。我的应用程序正在向NGINX发出GET请求,NGINX正在向外部服务器发出另一个GET请求(请求中指定了指向此服务器的URL),并将响应返回给应用程序。NGINX应该缓存来自外部服务器的响应。我需要尊重响应中的缓存控制头(缓存该头所说的响应),但是!当响应中没有缓存控制头时,必须缓存12小

  • 嘿,我是c的新手,我正在尝试创建一个可以存储多种类型的地图: Wich显然给我带来了一些错误。 我在网上查了一下,发现了一些有趣的东西,但没有答案。也许我漏掉了一点c语言词汇。 我也会尝试一些关于任何类型的一流三明治商店,我不知道它是否有效。 谢谢你的帮助!

  • 我想使用SpringDataRepository接口来执行本机查询——我认为这种方式最简单,因为复杂性较低。 但是当扩展接口时。

  • 我知道如何清除缓存以供查看: ,但我还需要其他东西-删除controller方法中应用程序的所有缓存。怎么做?