u013065023
谭倩倩
采纳率33.3%
2017-01-17 12:14

spring cache +redis与直接用redis有什么不同么?

10
已采纳

spring cache 不也是缓存么,为什么不直接用redis呢,spring cache redis集成这样子有什么好处呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • wangb_java free_java 4年前

    集群环境下,每台服务器的spring cache是不同步的,这样会出问题的,spring cache只适合单机环境
    redis是设置单独的缓存服务器,所有集群服务器统一访问redis,不会出现缓存不同步的情况

    spring cache是很早就有的东西,现在+redis是为了顺应时代,更好的兼容集群环境,加强保留spring cache功能,不如直接使用redis

    点赞 3 评论 复制链接分享
  • u010528826 Mr-Yao 4年前

    Spring cache是代码级的缓存,他一般是使用一个ConcurrentMap。也就是说实际上还是是使用JVM的内存来缓存对象的,
    那么肯定会造成大量的内存消耗。但是使用方便。

    Redis 作为一个缓存服务器,是内存级的缓存。它是使用单纯的内存来进行缓存。

    那么Spring cache +redis的好处显而易见了。既可以很方便的缓存对象,同时用来缓存的内存的是使用redis的内存,
    不会消耗JVM的内存,提升了性能。

    当然这里Redis不是必须的,换成其他的缓存服务器一样可以,只要实现Spring的Cache类,并配置到XML里面就行了。

    点赞 10 评论 复制链接分享
  • mingjie1212 mingjie1212 4年前

    spring cache 是spring实现的java代码级的缓存,类似于ehcache。
    但是spring cache 没有对集群进行支持,ehcache支持集群。

    spring cache在单机上性能表现好一些;之所以使用spring cache 结合redis使用 一般是为了提高性能,优化实现流程。把一些系统配置级的东西用spring cache实现比较好一些。

    毕竟redis 从2.8后才对集群支持好一点。

    当然,我还是比较推荐现在的redis。具体项目具体分析实现。

    点赞 1 评论 复制链接分享
  • xcylive520 gryllsxu 4年前

    还有就是楼上说的spring cache是单机,不适合分布式

    点赞 评论 复制链接分享
  • xcylive520 gryllsxu 4年前

    spring cache 是基于注解的,对代码侵入比较小,但是支持的api太少了,不能满足大部分业务需求。
    redis基于api,优点是api类型多,缺点是业务代码入侵

    点赞 评论 复制链接分享
  • JE_GE JE_GE 4年前

    redis主要是实现分布式缓存
    spring cache 不是

    点赞 评论 复制链接分享
  • zhangpan_soft zhangpan_soft 4年前

    redis的集群比较好,缓存为键值对的形式,并且redis是内存型数据库,所以redis的效率在一定程度上是比cache高的,(小白见解)

    点赞 评论 复制链接分享

相关推荐