我正在尝试设置一个spring启动应用程序,并寻找在本地缓存中存储小数据的选项,然后这个本地缓存与将在google云平台上的Redis服务器进行交互。此本地缓存可以在多个节点之间共享。我看到Redis pro可以帮助实现这一点,但这不是免费的。有没有我可以使用的开源选项?或者其他任何我可以在Spring boot中设置的方法?如何设置与中央缓存同步的本地缓存?有什么建议吗?
发布于 2021-11-13 03:25:34
您可以使用Redisson https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#1421-spring-cache-local-cache-and-data-partitioning。它在专业版中可用。
如果你想自己实现它,你需要实现自定义的CacheManager,首先在本地缓存中查找条目(可能是用比HashMap更智能的东西来实现,比如Caffeine,如果条目找不到就去基于Redis的CacheManager,然后根据结果将数据放到咖啡因缓存中。
为了在Redis中存储数据,并确保所有节点同步,您可以使用Redis Pub/Sub机制通知每个连接的节点更新本地缓存。
发布于 2021-11-15 01:02:42
提供了客户端缓存,也就是通常所说的“近缓存”。参见here。
历史
是一种开源软件,内存中数据网格(IMDG)技术,具有Apache2许可证。事实上,如果需要,它可以不仅仅是缓存,但它非常适合应用程序体系结构(Web、服务、数据)中的任何层的缓存用例。
Apache Geode的商业版本是,构建在Apache Geode源代码之上,如果需要,还可以获得VMware的支持。但是,使用Apache Geode是完全免费的。
事实上,最初的Spring Cache Abstraction的灵感来自Costin Leau对Spring Data GemFire的开发(最初的领导和创建者),它已经被Spring Data for Apache Geode取代,专注于开源软件产品。(请参阅here/alt-here,然后参阅here以及from Boot)。
SBDG是SDG的扩展,为Apache Geode (或VMware Tanzu )的用户提供了在Spring上下文中使用Apache Geode的正确和一流的体验,特别是具有Spring Boot功能(例如自动配置)。也就是说,SBDG是Spring Boot的一个特殊扩展,专门为Apache Geode提供服务,用于处理Spring团队自己拥有和维护的各种应用程序问题(如缓存)。
除了“近缓存”之外,SBDG甚至还能够处理several caching patterns。请参阅topic of caching in general。
最后,SBDG还包括 (SSDG)来处理独立于Web容器(例如Tomcat)的Web会话状态缓存问题,使用Apache Geode作为HTTP会话状态的缓存提供者。当然,它是基于Spring Session核心构建的(参见here)。
https://stackoverflow.com/questions/69951159
复制相似问题