redis.conf中bind绑定IP不对,redis集群创建节点的时候,报错|redi群集密码设置

前言#

我们都知道,redis 的配置文件中,默认绑定接口是 127.0.0.1,也就是本地回环接口,所以是无法从外网连接 redis 服务的。如果想要让外网也能连接使用服务器上的 redis 服务,可以简单地注释掉 bind 这一行。但对于 bind 参数的作用,网上有很多文章的解释都是误人子弟的。

关于bind#

翻看网上的文章,此处多翻译为:

指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中最好设置该项。
这种解释会搞糊涂初学者,甚至是错误的。查看配置文件 redis.conf,可以看到很详细的注释说明。

Copy

# By default, if no "bind" configuration directive is specified, Redis listens
# for connections from all the network interfaces available on the server.
# It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only into
# the IPv4 lookback interface address (this means Redis will be able to
# accept connections only from clients running into the same computer it
# is running).
#
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

bind 127.0.0.1

请认真阅读上述英文注释, 下面是google翻译

默认情况下,如果未指定“ bind”配置指令,则Redis将侦听服务器上所有可用网络接口的连接。 可以使用“ bind”配置指令仅侦听一个或多个所选接口,然后侦听一个或多个IP地址。
如果运行Redis的计算机直接暴露于Internet,则绑定到所有接口都是很危险的,并且会将实例暴露给Internet上的所有人。 因此,默认情况下,我们取消注释以下bind指令,这将强制Redis仅侦听IPv4回顾接口地址(这意味着Redis将只能接受来自运行在同一台计算机上的客户端的连接)。
如果您确定要立即侦听所有接口,请仅注意以下内容。
bind 127.0.0.1

正确做法#

redis部署在本机#

执行ifconfig中获取到本机ip (或者hostname -I)

redis.conf配置为bind 127.0.0.1 本机ip

redis部署在docker中#

进入redis所在的docker容器

执行ifconfig中获取到本机ip (或者hostname -I)

redis.conf配置为bind 127.0.0.1 本机ip

参考文章:https://www.cnblogs.com/Draymonder/p/11938114.html

redis集群密码设置

1、密码设置(推荐)
方式一:修改所有Redis集群中的redis.conf文件加入: 

masterauth passwd123
requirepass passwd123 

说明:这种方式需要重新启动各节点

方式二:进入各个实例进行设置:

./redis-cli -c -p 7000
config set masterauth passwd123
config set requirepass passwd123
config rewrite 

之后分别使用./redis-cli -c -p 7001,./redis-cli -c -p 7002…..命令给各节点设置上密码。

注意:各个节点密码都必须一致,否则Redirected就会失败, 推荐这种方式,这种方式会把密码写入到redis.conf里面去,且不用重启。

用方式二修改密码,./redis-trib.rb check 10.104.111.174:6379执行时可能会报[ERR] Sorry, can‘t connect to node 10.104.111.174:6379,因为6379的redis.conf没找到密码配置。

2、设置密码之后如果需要使用redis-trib.rb的各种命令 
如:./redis-trib.rb check 127.0.0.1:7000,则会报错ERR] Sorry, can’t connect to node 127.0.0.1:7000 
解决办法:vim /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.0/lib/redis/client.rb,然后修改passord

class Client
    DEFAULTS = {
      :url => lambda { ENV["REDIS_URL"] },
      :scheme => "redis",
      :host => "127.0.0.1",
      :port => 6379,
      :path => nil,
      :timeout => 5.0,
      :password => "passwd123",
      :db => 0,
      :driver => nil,
      :id => nil,
      :tcp_keepalive => 0,
      :reconnect_attempts => 1,
      :inherit_socket => false
    }

注意:client.rb路径可以通过find命令查找:find / -name ‘client.rb‘

带密码访问集群

./redis-cli -c -p 7000 -a passwd123

在springboot项目中还需要设置application.properties中需要设置redisde的密码spring.redis.password=xxxxx

原文地址:https://www.cnblogs.com/shy-1208/p/12594653.html

时间: 2024-10-11 02:36:06

redis.conf中bind绑定IP不对,redis集群创建节点的时候,报错|redi群集密码设置的相关文章

高可用Redis(十一):使用redis-trib.rb工具搭建集群

环境说明: 两台虚拟机,IP地址分别为:192.168.81.100和192.168.81.101 虚拟机系统为:CentOS 7.5 Redis为yum安装,版本为3.2 系统环境:关闭firewalld Redis Cluster集群节点包括:192.168.81.101机器的9000.9001,9002端口运行的redis-server以及192.168.81.100机器的9000.9001,9002端口运行的redis-server 步骤: 1.Ruby环境准备 官网下载Ruby源码包,

Redis基本概念、基本使用与单机集群部署

1. Redis基础 1.1 Redis概述 Redis是一个开源.先进的key-value存储,并用于构建高性能.可扩展的应用程序的完美解决方案. Redis从它的许多竞争继承了三个主要特点:   ①Redis数据库完全在内存中,使用磁盘仅用于持久性:   ②相比许多键值对数据存储,Redis拥有一套较为丰富的数据类型:   ③Redis可以将数据复制到任意数据量的从服务器: 1.2 Redis优势 异常快速:Redis的速度非常快,每秒能执行约11万次set操作,每秒约81000次get操作

Redis集群创建报错

Redis集群环境:och163/och164/och165 在执行如下脚本时报错: ./src/redis-trib.rb create 10.1.253.163:6379 10.1.253.164:6379 10.1.253.165:6379 /usr/lib/ruby/gems/1.8/gems/redis-3.0.7/lib/redis/client.rb:97:in `call': ERR Slot 16011 is already busy (Redis::CommandError)

Redis集群创建和配置

1.检查GCC是否安装,可以看看版本号 gcc -v 安装命令:yum install gcc-c++ 2.安装Ruby和Rubygems 如果有网的话,则通过yum命令进行安装,自动将关联的依赖包全部安装 yum install ruby yum install rubygems Ruby离线安装去官网下载:http://www.ruby-lang.org/en/downloads/ ./configure –-prefix=/usr/local/ruby -prefix是将ruby安装到指定

redis 集群新增节点,slots槽分配,删除节点, [ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GET...

redis reshard 重新分槽(slots) https://github.com/antirez/redis/issues/5029 redis 官方已确认该bug redis 集群重新(reshard)分片故障 [ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY) 错误背景描述 redis版本:4.0.1 ruby gem reids 版本

saltstack之redis集群创建

redis集群创建 我这里用了2台机器,创建伪集群,大家可根据自己需要,稍微调整即可 ##安装配置redis集群 [[email protected] redis]# cat redis.sls redis-installed: archive.extracted: - name: /ane/soft/ - source: salt://redis/files/redis-3.2.1.tar.gz - archive_format: tar - if_missing: /ane/soft/red

输出redis cluster集群所有节点指定的参数的配置

需要:实现类似redis-trib.rb call 命令的功能,输出redis cluster集群所有节点指定的参数的配置 redis-trib.rb的输出 [[email protected] ~]$ redis-trib.rb call 5.5.5.101:29001 config get *timeout* /usr/local/ruby2.5.1/lib/ruby/gems/2.5.0/gems/redis-3.3.0/lib/redis/client.rb:459: warning:

微服务管理平台nacos虚拟ip负载均衡集群模式搭建

一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:Eureka.consul等,支持服务的健康检查. Nacos作为服务配置中心,可以替换Spring Cloud Config. 当然Nacos作为一个微服务管理平台,除了面向spring Cloud,还支持很多其他的微服务基础设施,如:docker.dubbo.kubernetes等.除了核心的服务

3850 X5如何开启IMM中的SNMP V1, 现通过IE或ASU命令开启都报错

经验分享 问题: 3850 X5如何开启IMM中的SNMP V1, 现通过IE或ASU命令开启都报错. 报错如下: Couldn't save SNMP settings:Please configure Contact and location to enable snmp V1/V3 是否需要升级 IMM,升级IMM是否会影响运行的业务系统,如何升级IMM??? 解决办法:在左侧"IMM Control"中--"System Settings"  IMM Inf