acax22277111
爱上1237
采纳率42.9%
2018-12-25 20:36 阅读 1.7k

在腾讯云上搭建Redis集群访问的问题

20

求各位大佬帮忙,弄了一天了。我是刚学习redis集群的搭建。按照网上的步骤,然用ruby后来搭建redis集群。一开始遇到的一个坑是在配置文件中添加bind (腾讯云的外网ip)之后 启动redis没反应 删掉这一段就可以启动。 图片说明
然后是在启动集群的时候输入外网ip就有下面的提示 用127.0.0.1:7000就可以正常启动。 图片说明

在服务器上是可以正常存取数据的(用xshell链接),
图片说明

但是在项目上连接使用就会报错。

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
    at redis.clients.jedis.Connection.connect(Connection.java:207)
    at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93)
    at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767)
    at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106)
    at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:888)
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:432)
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:361)
    at redis.clients.util.Pool.getResource(Pool.java:49)
    ... 66 common frames omitted
Caused by: java.net.ConnectException: Connection refused: connect

我又在网上查 说是redis服务没开。但是我也不知道怎么解决。 求各位大手子帮忙解决一下。

我在网上看的用cluster nodes查看 cluster的状态,发现它的ip是127.0.0.1的 ,我想问下是不是这个原因。但是我用外网ip启动和内网ip启动都报错啊,只有用127.0.0.1启动的时候才成功。求解求解图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • m_sophia m_sophia 2019-01-27 12:00

    1、去掉redis.conf中bind那一行
    2、添加protected-mode no
    3、在远程机器上通过telnet命令测试端口是否允许访问
    4、集群构建时,./redis-cli --cluster create 公网IP:6001 公网IP:6002 公网IP:6003 公网IP:6004 公网IP:6005 公网IP:6006 --cluster-replicas 1

    点赞 2 评论 复制链接分享
  • weixin_38568779 happyProgrammerWANG 2018-12-25 12:52

    看一下防火墙关没关。再看看服务状态

    点赞 评论 复制链接分享
  • ainiburuqusi ainiburuqusi 2018-12-26 00:54

    127.0.0.1是本机地址 。项目要访问的话地址也必须配置127.0.0.1。如果是配置外网地址 ,就是内网回路ip,你现在的外网ip是互联网外网IP,这个ip的端口必须配置安全策略,关闭防火墙。很麻烦,而且不安全。

    点赞 评论 复制链接分享
  • u013434984 潭溪Zerg 2018-12-26 05:29

    这种问题别问csdn,回复慢,直接下工单问腾讯云,他们如果客服搞不定你可以试着直接问他们技术联系方式,直接问他们搞定
    腾讯云的内外网ip什么的,还有各种连接策略,你不写明了,也不知道你踩到哪个坑了。

    点赞 评论 复制链接分享
  • qq_27248139 ^*妖之鱼 2020-03-12 16:45

    find / -name 'client.rb'
    vim /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis/client.rb
    找下对应文件把你的密码设置进去
    你这个方式部署集群不支持带密码的
    class Client
    DEFAULTS = {
    :url => lambda { ENV["REDIS_URL"] },
    :scheme => "redis",
    :host => "127.0.0.1",
    :port => 6379,
    :path => nil,
    :timeout => 5.0,
    :password => "你的密码写在这里",
    :db => 0,
    :driver => nil,
    :id => nil,
    :tcp_keepalive => 0,
    :reconnect_attempts => 1,
    :inherit_socket => false
    }

    点赞 评论 复制链接分享

相关推荐