首页 > 解决方案 > 如何使用 Spring Boot 实现本地缓存?

问题描述

我正在尝试设置一个 Spring Boot 应用程序并寻找将小数据存储在本地缓存中的选项,然后这个本地缓存与将在谷歌云平台上的 Redis 服务器交互。这个本地缓存可以在多个节点之间共享。我看到 Redis pro 可以帮助实现这一目标,但这不是免费的。我可以使用任何开源选项吗?或者我可以在 Spring Boot 中设置它的任何其他方式?如何设置与中央缓存同步的本地缓存?请问有什么建议吗?

标签: spring-bootcachinggoogle-cloud-platformredisspring-cache

解决方案


您可以使用 Redisson https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks/#1421-spring-cache-local-cache-and-data-partitioning。它在专业版中可用。

如果您想自己实现它,则需要实现自定义CacheManager,首先在本地缓存中查找条目(可能使用比 a 更智能的东西实现HashMap,例如Caffeine,如果找不到条目基于 RedisCacheManager然后取决于结果将数据放入 Caffeine 缓存。

为了在 Redis 中存储数据并确保所有节点同步,您可以使用Redis Pub/Sub机制来通知每个连接的节点更新本地缓存。


推荐阅读