首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring Boot应用程序中清除远程Redis缓存

在Spring Boot应用程序中清除远程Redis缓存
EN

Stack Overflow用户
提问于 2020-10-07 22:29:35
回答 1查看 611关注 0票数 0

我使用的是Spring Boot2.3,我使用的是使用app.properties的默认缓存机制。我定义了所有的值:

代码语言:javascript
复制
spring.cache.type = redis
spring.redis.host = host
spring.redis.port = port
spring.redis.timeout = 4000
spring.redis.password = psw
spring.cache.redis.time-to-live = 28800000

例如,我利用了Spring Repository中的缓存:

代码语言:javascript
复制
    @Cacheable(cacheNames = "contacts")
    @Override
    Page<Contact> findAll(Specification specification, Pageable pageable);

它的工作方式与预期一致。然而,Redis是从我的几个应用程序中使用的一个集群,我需要第二个应用程序能够删除redis中的一些/所有密钥。

applicazione A1利用缓存并将键放入其中。应用程序A2,需要清除一些键或所有键。

在A2中,我做到了:

代码语言:javascript
复制
cacheManager.getCacheNames().forEach(cacheName -> cacheManager.getCache(cacheName).clear());

当然,缓存名称列表是空的,因为在这个应用程序中,我没有向缓存中添加键,而且,无论如何,我没有与A1相同的键。我应该列出远程密钥,然后需要清除它们。有没有不使用Spring Data Redis库的简单方法?

EN

回答 1

Stack Overflow用户

发布于 2020-10-08 04:30:38

您可以为Redis中的整个缓存定义一个separate prefix。类似于缓存条目的名称空间。在您可以刷新此名称空间中的所有键之后。

注意:确保CacheManager只有Redis缓存,没有内存缓存(L1)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64246242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档