我正在探索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()
)清除了缓存之后,我才能够再次使用相同的键进行保存。但是,我认为这也不能始终如一地工作。
知道我可能在做什么错吗?
谢谢!