代码如下:

if ( StringUtils.isNotBlank(key) && pnupCacheClient.exists(key)) {
        pnupCacheClient.set(key, null);
        log.info("解绑清除redis二维码缓存执行完毕");
 }

该段代码在本地测试成功  但是放到linux系统执行曝出了redis的value  can not be null的异常,测试和开发一个redis;

然后在想是不是环境问题引起的;先抛开一边。先修改代码把null改为""空串;linux执行成功了;

okay,来分析一哈原因

环境测试和开发是一个redis  ,开发造的数据redis中的key是不存在的,但测试数据中redis中存在key,因此开发跑的时候if判断key是否存在,就直接跳过了set 方法,而测试数据会执行set 方法;就会曝出这个redis的value  can not be null的异常;

问题分析完成!

Logo

更多推荐