spring-boot - 清除redis spring数据中特定缓存名称的缓存
问题描述
我有以下缓存方法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'
解决方案
推荐阅读
- python - 初学者问题:如何合并“功能”和“短语”
- javascript - 如何使用 Resonance Audio 的 setPosition 以像素 (x,y) 为单位定义音频源在 javascript 画布元素上的位置?
- powershell - Powershell JAR 可执行文件占用实例
- android - 创建保存下载文件的路径
- php - HTML 表单未向 Laravel 服务器端发送任何数据
- wpf - 将新行添加到 WPF 中的 DataGrid 时未激活 CellEditingTemplate
- angular - 尝试以角度从 localhost 获取数据时出现 404 Not Found 错误
- c# - 使用 MediaPlayer 在 WPF 应用程序中播放声音
- javascript - Nodemailer 无法在 PUG 引擎上启动
- c# - 动态数据类型的方法重载