redisson使用报错Error creating bean with name 'redissonClient':

报错内容是:

 Error creating bean with name 'redissonClient': Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'create' threw exception; nested exception is java.lang.NoSuchMethodError: io.netty.channel.nio.NioEventLoopGroup.<init>(ILjava/util/concurrent/ThreadFactory;)V

 

我使用的redisson版本是3.10.7

最后通过调试源码发现,我用的netty版本过高,然后经过几番测试,使用了netty  4.1.36.Final

目前redisson不支持netty5,同时3.10.7版本的redisson,不支持部分 netty4.0.x版本,所以使用redisson时需要注意了

 

 

解决了上个问题后,有遇到了一个问题,那就是我分明配置了redisson node-address为远程地址,但是redisson 却要去连接我本地的地址,即 127.0.0.1,也就是说redisson 连接的地址跟我配置的redis的地址不一致,具体可见下图

可以看到第一步先从我配置的远端服务器抓取配置,接下来竟然直接连我的本地了,那么可想而知,肯定是连接不上的了,后来调试源码,忽然想到是不是自己的redis-cluster配置的有问题,查了查进程,发现redis-server的进程都在,后来突然想到,redis的进程都在,但并不是cluster状态,然后查redis集群的配置方法,发现,除了基本的更改配置文件,想要启动集群,需要分两步

1.启动redis各个节点

2.通过redis-cli 去创建集群

而我的问题就是没有执行第2步,然后执行第2步,再次测试终于连接上了,

这个报错还有另外一种可能那就是,redis.conf文件中bind配置错误,亲测,在redis.conf中无论是 注释掉 bind 还是 bind 绑定地址是0.0.0.0还是127.0.0.1都会出现这个问题,解决方法就是bind 的值设置为机器真实IP,也就是内网IP 或者外网IP,根据你的应用来决定。当然这是构建redis-cluster 所需要的设置,如果是单机的redis,注释掉bind,或者设置为0.0.0.0是更好的选择

当使用redis-cli 连接redis-cluster时 使用命令 :

redis-cli -c -h 任意节点IP -p 端口号

关于redis-cluster的搭建,可以参考:

https://my.oschina.net/ruoli/blog/2252393

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值