@CacheEviction和Redis缓存问题

时间:2019-11-11 10:43:14

标签: spring-boot redis spring-data-redis

我正在探索Redis以在我们的项目中使用它。 我使用Spring Boot创建了一个简单的示例,并使用application.properties配置了Redis

我正在使用@Cacheable和@CacheEvict,如下所示:

//To save to cache:
@Cacheable(value="cache1",key="#key")
public A save(String key, A a){return a;}

//To retrieve from cache:
@Cacheable(value="cache1",key="#key")
public A retrieve(String key){return null;}

//To delete from cache:
@CacheEvict(value="cache1",key="#key")
public void delete(String key){}

我能够通过调用save()将数据保存到cache1,并通过调用retrieve()来获取数据。但是,当我调用Delete逐出密钥/数据时,无法使用相同的密钥再次保存数据。我可以用其他密钥保存。

只有在使用RedisCacheManager(redisCacheManager.getCache("cache1").clear())清除了缓存之后,我才能够再次使用相同的键进行保存。但是,我认为这也不能始终如一地工作。

知道我可能在做什么错吗?

谢谢!

0 个答案:

没有答案