1、问题描述:
CAS登录过程中需要使用redis进行session信息共享,在测试环境发版启动都正常,然而在上线的时候启动直接翻车了......
通过查看启动日志发现报了这个错误信息,最终导致项目启动不了:
redis.clients.jedis.exceptions.JedisDataException: ERR unknown command 'CONFIG'
查其原因,是由于spring-session调用了CONFIG命令来配置Keyspace notifications功能。
生产环境基于权限的考虑,运维给与的权限相对较低,因此禁用了服务之星CONFIG命令,然后测试环境给与的权限较高,因此在测试环境上会正常启动运行,而到了生产环境直接翻车。
2、解决方案:
第一步:打开redis的Keyspace notifications功能,在redis.conf配置文件里添加下面的配置项:
notify-keyspace-events Ex
第二步:
可以在xml文件中添加此配置:
<util:constant static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/>
在 xml文件中添加配置则需要引入对应的util标签。
或者直接添加代码完成:
@Bean
public static ConfigureRedisAction configureRedisAction() {
return ConfigureRedisAction.NO_OP;
}
至此,重新打包发版即可解决。
最后
以上就是感动大象最近收集整理的关于记录一次生产环境部署出现 ERR unknown command 'CONFIG' 问题,导致启动失败的全部内容,更多相关记录一次生产环境部署出现内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复