在线上部署服务时,spring-session报了一个redis的错误,如下:
redis.clients.jedis.exceptions.JedisDataException: ERR unknown command 'CONFIG'
原因是spring-session调用了CONFIG命令来配置Keyspace notifications功能。而线上环境的redis基于权限的考虑,禁止应用服务执行CONFIG命令,这样就导致了应用在初始化时抛出此异常。
解决方案:
1、打开redis的Keyspace notifications功能,在redis.conf配置文件里添加下面的配置项:
notify-keyspace-events Ex
修改配置后,需要重启redis服务器
2、关闭Spring-session使用CONFIG命令做操作
@Bean
public static ConfigureRedisAction configureRedisAction() {
return ConfigureRedisAction.NO_OP;
}
到此,问题就可以解决了