在Redis Spring数据中清除特定缓存名称的缓存

时间:2020-07-27 22:20:59

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

我有以下缓存student-classes的方法,我只想清除student-classes的缓存名称

@Cacheable( value = "getStudentClasses",key ="(new net.student.util.CacheKeyCreator()).createKey(''+#university)",cacheManager = "cacheManager")
public List<StudentClass> getStudentClasses(String university) {
      //get studentclasses 
}

我曾尝试清除以下内容,但并未清除具有特定名称的缓存

@Bean(name = "cacheManager")
public CacheManager cacheManager ( RedisTemplate<String, Object> redisTemplate ) {
    RedisCacheManager redisCacheManager = new RedisCacheManager( redisTemplate );
    redisCacheManager.setDefaultExpiration(0);
    redisCacheManager.setUsePrefix( true);
    return redisCacheManager;
}


@Autowired
ApplicationContext context;
    
public void clearStudentClasses(){

  CacheManager cacheManager= (CacheManager) context.getBean("cacheManager");
          
  cacheManager.getCache("getStudentClasses").clear(); //exceptionLine            

 }

我在例外行有这个例外

> org.springframework.dao.InvalidDataAccessApiUsageException: ERR
> unknown command 'EVAL'; nested exception is
> redis.clients.jedis.exceptions.JedisDataException: ERR unknown command
> 'EVAL'

0 个答案:

没有答案