注意事项:
1.如果是使用redis-trib.rb工具构建集群,集群构建完成前不要配置密码,集群构建完毕再通过config set + config rewrite命令逐个机器设置密码
2.如果对集群设置密码,那么requirepass和masterauth都需要设置,否则发生主从切换时,就会遇到授权问题,可以模拟并观察日志
3.各个节点的密码都必须一致,否则Redirected就会失败
config set masterauth abc config set requirepass abc config rewrite
测试版本:
redis3.0.7
测试环境:
centos7
集群规模:
3主3从
集群构建成功前的redis配置:
port 8000 cluster-enabled yes cluster-config-file "nodes-8000.conf" cluster-node-timeout 15000 dir "/opt/redisdata" appendonly yes appendfilename "appendonly-8000.aof" logfile "/opt/redisdata/8000.log" daemonize yes pidfile "/var/run/redis-8000.pid" dbfilename "dump-8000.rdb" cluster-require-full-coverage no
集群构建成功后的redis配置:
port 8004 cluster-enabled yes cluster-config-file "nodes-8004.conf" cluster-node-timeout 15000 dir "/opt/redisdata" appendonly yes appendfilename "appendonly-8004.aof" logfile "/opt/redisdata/8004.log" daemonize yes pidfile "/var/run/redis-8004.pid" dbfilename "dump-8004.rdb" cluster-require-full-coverage no # Generated by CONFIG REWRITE requirepass "abc" masterauth "abc"
测试:
1.8002是主,8005是8002的从,现在要kill掉8002模拟主从切换
2.查看8005的日志,8005最终被选举成新的master
21227:S 14 Jun 07:28:49.343 # Connection with master lost. 21227:S 14 Jun 07:28:49.343 * Caching the disconnected master state. 21227:S 14 Jun 07:28:49.433 * Connecting to MASTER 127.0.0.1:8002 21227:S 14 Jun 07:28:49.433 * MASTER <-> SLAVE sync started 21227:S 14 Jun 07:28:49.434 # Error condition on socket for SYNC: Connection refused 21227:S 14 Jun 07:28:50.437 * Connecting to MASTER 127.0.0.1:8002 21227:S 14 Jun 07:29:06.205 # Start of election delayed for 564 milliseconds (rank #0, offset 337). 21227:S 14 Jun 07:29:06.507 * Connecting to MASTER 127.0.0.1:8002 21227:S 14 Jun 07:29:06.507 * MASTER <-> SLAVE sync started 21227:S 14 Jun 07:29:06.507 # Error condition on socket for SYNC: Connection refused 21227:S 14 Jun 07:29:06.808 # Starting a failover election for epoch 10. 21227:S 14 Jun 07:29:06.810 # Failover election won: I'm the new master. 21227:S 14 Jun 07:29:06.810 # configEpoch set to 10 after successful failover 21227:M 14 Jun 07:29:06.810 * Discarding previously cached master state.
3.再次启动8002,查看8005的日志,8002已经变成8005的slave
21227:M 14 Jun 07:32:53.511 * Slave 127.0.0.1:8002 asks for synchronization 21227:M 14 Jun 07:32:53.511 * Full resync requested by slave 127.0.0.1:8002 21227:M 14 Jun 07:32:53.511 * Starting BGSAVE for SYNC with target: disk 21227:M 14 Jun 07:32:53.511 * Background saving started by pid 21613 21613:C 14 Jun 07:32:53.513 * DB saved on disk 21613:C 14 Jun 07:32:53.513 * RDB: 0 MB of memory used by copy-on-write 21227:M 14 Jun 07:32:53.612 * Background saving terminated with success 21227:M 14 Jun 07:32:53.612 * Synchronization with slave 127.0.0.1:8002 succeeded
4.简单测试了GET SET命令,正常
以上这篇基于redis集群设置密码的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
问题内容: 我在本地计算机上使用Redis,所以我真的不需要设置密码即可通过php客户端连接到服务器(我使用predis作为客户端)。但是,我将应用程序移动到实时服务器,因此我想设置一个密码以连接到我的Redis服务器。 我有几个问题: 我在互联网上检查了如何设置密码,好像我需要在redis.conf中添加密码。我找不到我应该完全添加到配置文件中来设置密码的内容。 另外在predis我应该如何添加
本文向大家介绍docker安装Elasticsearch7.6集群并设置密码,包括了docker安装Elasticsearch7.6集群并设置密码的使用技巧和注意事项,需要的朋友参考一下 Elasticsearch从6.8开始, 允许免费用户使用X-Pack的安全功能, 以前安装es都是裸奔。接下来记录配置安全认证的方法。 为了简化物理安装过程,我们将使用docker安装我们的服务。 一些基础配置
本文向大家介绍基于docker搭建redis集群的方法,包括了基于docker搭建redis集群的方法的使用技巧和注意事项,需要的朋友参考一下 下载redis镜像 取别名 删除原先的镜像标签 启动6个节点的redis容器 注意网络用的是net1 创建的容器默认是没有启动,所以需要一个一个启动 进入任意一个容器例如r1 然后利用ruby脚本启动集群 输入yes即可创建成功,执行脚本时终端输出
我需要从我的微服务提供到Redis的安全连接。 所以如果我想添加支持身份验证的能力,以便客户端可以发送带有密码的AUTH命令。参见http://redis.io/topics/security 如何使用Spring Data Redis实现来完成此操作?
我有一个用例,我想建立一个Kafka集群,最初我有1个Kafka Broker(A)和1个Zookeeper节点。以下是我的疑问: > 在向集群添加新的Kafka Broker(B)时。代理A上存在的所有数据都会自动分发吗?如果不是,我需要做的是分发数据。 不,让我们假设情况以某种方式解决了!我的数据分布在两个代理上。现在由于一些维护问题,我想关闭服务器B。 如何将经纪商B的数据传输到已经存在的经
Redis 集群(Redis Cluster) 是 Redis 提供的分布式数据库方案。 既然是分布式,自然具备分布式系统的基本特性:可扩展、高可用、一致性。 Redis 集群通过划分 hash 槽来分片,进行数据分享。 Redis 集群采用主从模型,提供复制和故障转移功能,来保证 Redis 集群的高可用。 根据 CAP 理论,Consistency、Availability、Partition