标签: redis-sentinel

如何关闭Redis中的“保护模式”?

我想protected-mode在我的生产 Redis上禁用。关于我从我的另一个 Redis-Sentinel 实例中得到的以下错误,我可以通过从它运行的主计算机连接到 Redis 来实时禁用它。

DENIED Redis 在保护模式下运行,因为已启用保护模式,未指定绑定地址,未向客户端请求身份验证密码。在此模式下,仅接受来自环回接口的连接。如果您想从外部计算机连接到 Redis,您可以采用以下解决方案之一:

1)只需禁用保护模式,通过从运行服务器的同一主机连接到Redis,从环回接口发送命令'CONFIG SET protected-mode no',但是如果这样做,请确保Redis不能从互联网公开访问。使用 CONFIG REWRITE 使此更改永久化。

2) 或者,您可以通过编辑 Redis 配置文件并将保护模式选项设置为“no”,然后重新启动服务器来禁用保护模式。

3) 如果您手动启动服务器只是为了测试,请使用“--protected-mode no”选项重新启动它。

4) 设置绑定地址或认证密码。

注意:您只需要执行上述操作之一,服务器就可以开始接受来自外部的连接。

但是当我连接并尝试禁用它时,我收到了 Error (error) ERR Unsupported CONFIG parameter: protected-mode

没有配置身份验证或其他任何东西 - 所有安全性都由防火墙规则管理。在redis.conf几乎是默认的。

演示

root@svim-redis03 /etc/redis # redis-cli

127.0.0.1:6379> CONFIG GET protected*
(empty list or set)
127.0.0.1:6379> CONFIG GET bind*
1) "bind"
2) "127.0.0.1"
127.0.0.1:6379> CONFIG SET protected-mode no
(error) ERR Unsupported CONFIG parameter: protected-mode
127.0.0.1:6379> exit

root@svim-redis03 /etc/redis # …
Run Code Online (Sandbox Code Playgroud)

redis redis-sentinel

10
推荐指数
1
解决办法
4万
查看次数

master宕机时Redis Sentinel不动作

我正在尝试跨 3 个节点设置 Redis/Sentinel 设置,每个节点都运行一个 redis 实例和一个哨兵实例。然而,当主机宕机时,剩下的哨兵只是坐在那里什么都不做,然后决定将每个从机设置为自己的从机,这当然接近于可能的更坏的行动方案。

有关设置的详细信息如下:

节点是10.66.5.3, 10.66.5.4, 10.66.5.5

默认情况下,.3节点是主节点(在安装时),所有其他节点在/etc/redis/redis.conf文件中都有相应的条目:slaveof 10.66.5.3 6379. 其余部分redis.conf未修改。

哨兵的起始配置如下:

daemonize no
sentinel monitor myapp 10.66.5.3 6379 2
sentinel down-after-milliseconds myapp 5000
sentinel failover-timeout myapp 15000
sentinel parallel-syncs myapp 1
Run Code Online (Sandbox Code Playgroud)

注意:我让upstart处理服务,这就是守护进程标志关闭的原因。配置文件可由它们各自的守护进程写入,因此哨兵可以(并且确实)更新其配置文件,例如,没问题。

只要所有节点都活着,设置就可以正常工作。在 master 上注册一些东西会传播到 slave 等等。

现在,当我当时选择关闭 ( shutdown -h now) Redis master 并留出一些时间让 quorum 发生时,产生的情况是:

  • 节点.4被设置为他的 IP 地址的从属 ( 10.66.5.4)
  • 节点.5被设置为从属127.0.1.1

哨兵正在做很多来回的尝试来选择东西,但在其中一个坏掉后显然无法彼此正确沟通。他们还不断发现自己情绪低落和其他荒谬的事情。 …

redis redis-sentinel

5
推荐指数
1
解决办法
2422
查看次数

标签 统计

redis ×2

redis-sentinel ×2