redis异常解决:jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set

项目要做分离,对以前正在运营的项目做分隔处理,原来的redis缓存自然也要分开,避免最大化改动对功能的影响,对于缓存数据库只是做了分隔项目redis的库(dataBase)

在Spring.xml配置中这样申明了redis。

<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
	<constructor-arg ref="jedisPoolConfig" />
	<constructor-arg value="${redis.ip}" />
    	<constructor-arg value="${redis.port}" />
    	<constructor-arg value="${redis.timeout}" />
    	<constructor-arg value="${redis.database}" />
</bean>
接下来在开发服测试中,进行缓存处理时报错,如标题所见jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set

在csdn中找到部分前辈们解决的经验,链接

当中只提到密码访问,和无配置文件启动,并不能很好的解决我的问题(同一个服务器下多个redis端口不可能无配置文件启动)

由于我是无密码访问,我在参考了旧的项目后发现这样一种解法

<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
	<constructor-arg ref="jedisPoolConfig" />
	<constructor-arg value="${redis.ip}" />
    	<constructor-arg value="${redis.port}" />
    	<constructor-arg value="${redis.timeout}" />
    	<constructor-arg ><null/></constructor-arg>
    	<constructor-arg value="${redis.database}" />
</bean>
只是多加了一行
<constructor-arg ><null/></constructor-arg>
就令我的服务起死回生,神奇神奇,我的猜测是这行的位置恰好是密码位,传入null刚好对应无密码访问,才使流程继续进行下去。

写程序不能只看结果,也要了解过程,以上只是恰好完善了服务,只有当我真正理解了流程才有更好的编辑。

也希望各位同行进行指点~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值