spring-boot - 如何使用 Spring Boot 实现本地缓存?
问题描述
我正在尝试设置一个 Spring Boot 应用程序并寻找将小数据存储在本地缓存中的选项,然后这个本地缓存与将在谷歌云平台上的 Redis 服务器交互。这个本地缓存可以在多个节点之间共享。我看到 Redis pro 可以帮助实现这一目标,但这不是免费的。我可以使用任何开源选项吗?或者我可以在 Spring Boot 中设置它的任何其他方式?如何设置与中央缓存同步的本地缓存?请问有什么建议吗?
解决方案
您可以使用 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机制来通知每个连接的节点更新本地缓存。
推荐阅读
- php - How to merge all property values of two objects in PHP
- database - 如何将查询结果插入到 AS400 中的临时表或变量中?
- reactjs - 功能组件中的去抖动
- pytorch - 变换参数作为学习目标
- prometheus - 将 Prometheus 图表从 Prometheus-operator 升级到 kube-Prometheus-stack
- python - 在 python 中使用 selenium 滚动页面,只给我底部元素
- spring - 如何将带有对象的对象发送到服务器Vue.js 3
- pdf - 将 HTML 内容导入 dataTable pdf 导出
- matlab - 使用 MATLAB 的 nlinfit 函数时出错
- mysql - MySQL Workbench 不允许我运行查询