Spring Redis还是Ehcache?

Spring Redis还是Ehcache?,spring,caching,redis,spring-boot,ehcache,Spring,Caching,Redis,Spring Boot,Ehcache,哪个更适合以下环境: 坚持不是强迫 多台服务器(使用Ehcache时,必须进行一些缓存同步) 不频繁的写入和频繁的读取 相对较小的数据库(非常少的内存需求) 我会把我现在脑子里想的倒出来。我可能错了 我知道Redis需要一个单独的服务器(?),而Ehcache提供本地缓存,所以它必须更快,但会跨服务器复制缓存(?)。使用Ehcache可以在一个缓存上进行某些更新之后更新所有缓存 我的问题是哪一个更适合我提到的环境? 谁的表现会更好,或者当一个表现可能优于另一个时会出现什么情况 提前感谢。您可以将

哪个更适合以下环境:

  • 坚持不是强迫
  • 多台服务器(使用Ehcache时,必须进行一些缓存同步)
  • 不频繁的写入和频繁的读取
  • 相对较小的数据库(非常少的内存需求)
  • 我会把我现在脑子里想的倒出来。我可能错了

    我知道Redis需要一个单独的服务器(?),而Ehcache提供本地缓存,所以它必须更快,但会跨服务器复制缓存(?)。使用Ehcache可以在一个缓存上进行某些更新之后更新所有缓存

    我的问题是哪一个更适合我提到的环境?
    谁的表现会更好,或者当一个表现可能优于另一个时会出现什么情况


    提前感谢。

    您可以将Redis视为共享数据结构,而Ehcache是存储序列化数据对象的内存块。这是主要区别

    Redis作为一种共享数据结构,意味着您可以用一种语言放置一些预定义的数据结构(如字符串、列表、集合),然后用另一种语言检索。如果您的项目是多语言的,例如:Java是后端,PHP是前端,那么这非常有用。您可以将Redis用于共享缓存。但它只能存储预定义的数据结构,不能插入任何想要的Java对象


    如果您的项目只是Java,即不是多语言的,那么Ehcache是一个方便的解决方案

    您将遇到EhCache扩展问题,并需要资源在故障切换等过程中对其进行管理。 Redis在EhCache上的优势

  • 它使用经过时间验证的gossip协议进行节点发现和同步
  • 完全管理服务的可用性,如。这些服务提供了Redis的完全自动化、支持和管理,因此开发人员可以专注于他们的应用程序,而不必维护他们的数据库
  • 正确处理大量内存(我们都知道Redis可以在一台机器上管理数百GB的RAM)。它没有像Java那样的垃圾收集问题
  • 最后是Java开发者友好型Redis客户端的存在-。
    Redisson在Redis上提供了许多Java友好对象,如:

    • 设置
    • 并行映射
    • 名单
    • 排队
    • 德克
    • 阻塞队列
    • 封锁德克
    • 读写锁
    • 信号量
    • 原子长
    • 倒计时闩锁
    • 发布/订阅
    • 遗嘱执行人服务
    • 还有更多
    Redisson支持映射结构的本地缓存,可为读取操作提供45x性能提升


    这里描述了个人资本公司从EhCache到Redis的过渡经历

    从(java//spring)开发者的角度进行了一些解释,实现任何性能更好的想法都要容易得多??当你遇到性能问题时,你应该考虑性能。现在不行,你可以将Redis作为缓存实现,因为它在使用Amazon的ElastiCache时具有分布式特性,对于开发人员来说,为应用程序基础结构制作缓存服务器是一个更好的选择。我最终使用了redis,后来改用hazelcast(我发现redisson与hazelcast类似,支持java友好对象等)。我会考虑在未来的项目中使用ReDebug:)是的,但是我总是可以将java对象序列化为JSON字符串并存储在ReDIS中。我相信这就是大多数人使用redis作为缓存的方式。