记录一次生产环境部署出现 ERR unknown command 'CONFIG' 问题,导致启动失败

2020-04-21 15:03:04

参考地址 记录一次生产环境部署出现 ERR unknown command 'CONFIG' 问题,导致启动失败

上面这篇文章详细介绍了怎么解决这个问题,主要发生这个问题,是因为权限不足,我整了半天也没有解决这个问题,后来才知道,我这个是用的别人配置好的redis.conf,里面有句话,把CONFIG命令给重置了,所以我没有权限,不整体看这个配置文件还真不知道怎么办。

重置了CONFIG命令,也是安全考虑。

具体设置看这个连接  

Redis危险命令重命名、禁用


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;

}

至此,重新打包发版即可解决。



  • 2019-09-04 16:50:35

    CMake入门笔记

    Make是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

  • 2019-09-05 20:51:15

    在Android上使用FFmpeg压缩视频

    libavcodec-提供了更加全面的编解码实现的合集 libavformat-提供了更加全面的音视频容器格式的封装和解析以及所支持的协议 libavutil-提供了一些公共函数 libavfilter-提供音视频的过滤器,如视频加水印、音频变声等 libavdevice-提供支持众多设备数据的输入与输出,如读取摄像头数据、屏幕录制 libswresample,libavresample-提供音频的重采样工具 libswscale-提供对视频图像进行色彩转换、缩放以及像素格式转换,如图像的YUV转换 libpostproc-多媒体后处理器

  • 2019-09-05 20:54:21

    在Android 中使用FFmpeg命令

    到这里就可以运行FFmpeg命令了。一直我也是这样使用,但是我在做这个项目Cut的时候发现连续调用多次FFmpeg命令会报错(在项目需要,先改变分镜头的速度,再合成视频)。 为什么会这样的呢?

  • 2019-09-06 10:30:20

    ffmpeg错误码

    AVERROR_BSF_NOT_FOUND = -1179861752 AVERROR_BUG = -558323010 AVERROR_DECODER_NOT_FOUND = -1128613112 AVERROR_DEMUXER_NOT_FOUND = -1296385272 AVERROR_ENCODER_NOT_FOUND = -1129203192 AVERROR_EOF = -541478725 AVERROR_EXIT = -1414092869 AVERROR_FILTER_NOT_FOUND = -1279870712 AVERROR_INVALIDDATA = -1094995529 AVERROR_MUXER_NOT_FOUND = -1481985528 AVERROR_OPTION_NOT_FOUND = -1414549496 AVERROR_PATCHWELCOME = -1163346256 AVERROR_PROTOCOL_NOT_FOUND = -1330794744 AVERROR_STREAM_NOT_FOUND = -1381258232 AVERROR_BUG2 = -541545794 AVERROR_UNKNOWN = -1313558101

  • 2019-09-08 09:05:54

    MyBatis Generator 插件的拓展插件包

    应该说使用Mybatis就一定离不开MyBatis Generator这款代码生成插件,而这款插件自身还提供了插件拓展功能用于强化插件本身,官方已经提供了一些拓展插件,本项目的目的也是通过该插件机制来强化Mybatis Generator本身,方便和减少我们平时的代码开发量。

  • 2019-09-08 09:09:48

    mybatis-generator自动生成代码插件使用详解

      mybatis-generator是一款在使用mybatis框架时,自动生成model,dao和mapper的工具,很大程度上减少了业务开发人员的手动编码时间,今天自己研究了一下,也分享一下使用心得供大家简单使用。