我们有一个群集Redis设置(引擎版本5.04),其中有三个节点组,每个节点组位于各自的AZ中,每个组包含三个节点,在传输和静止时启用加密。Stunnel是在bastion主机上配置的,它允许我运行bash脚本,以便在需要时(在升级应用程序期间)刷新每个主副本。
通过控制台应用最新的Redis软件补丁后,由于自动故障切换,每个节点组中的主要endpoint都发生了更改,我正在寻找确定新主要endpoint的最佳方法,以便相应地更新我的bash脚本。
留档声明运行aws elasticache描述-复制-组-复制-组ID my-复制-组
应指示节点组成员的MONtRole
,例如。
"NodeGroupMembers": [
{
"CurrentRole": "primary",
"PreferredAvailabilityZone": "us-west-2a",
"CacheNodeId": "0001",
"ReadEndpoint": {
"Port": 6379,
"Address": "myreplgroup-001.1abc4d.0001.usw2.cache.amazonaws.com"
},
"CacheClusterId": "myreplgroup-001"
},
{
"CurrentRole": "replica",
"PreferredAvailabilityZone": "us-west-2b",
"CacheNodeId": "0001",
"ReadEndpoint": {
"Port": 6379,
"Address": "myreplgroup-002.1abc4d.0001.usw2.cache.amazonaws.com"
},
"CacheClusterId": "myreplgroup-002"
},
{
...
}
]
我对此命令的响应根本不包含CurrentRole:
"NodeGroupMembers": [
{
"PreferredAvailabilityZone": "ap-southeast-2c",
"CacheNodeId": "0001",
"CacheClusterId": "my-replication-group-0001-001"
},
{
"PreferredAvailabilityZone": "ap-southeast-2b",
"CacheNodeId": "0001",
"CacheClusterId": "my-replication-group-0001-002"
},
{
"PreferredAvailabilityZone": "ap-southeast-2a",
"CacheNodeId": "0001",
"CacheClusterId": "my-replication-group-0001-003"
}
]
是否有可用于确定主endpoint的替代aws cli命令?通过控制台故障转移主节点很容易,但由于我无法通过控制台/cli识别哪个节点是当前的主节点,这意味着猜测需要在我的刷新脚本中定位哪些节点。
我在Elasticache的文档中找到了以下段落:
Redis(启用集群模式)具有副本的集群,因为它们有多个分片(API/CLI:节点组),这意味着它们也有多个主节点,与Redis(禁用集群模式)集群具有不同的endpoint结构。Redis(启用集群模式)有一个配置endpoint,它“知道”集群中的所有主endpoint和节点endpoint。您的应用程序连接到配置endpoint。每当您的应用程序写入或读取集群的配置endpoint时,Redis都会在幕后确定密钥属于哪个分片以及使用该分片中的哪个endpoint。这对您的应用程序来说非常透明。
我猜您给出的示例输出是针对一个禁用了群集模式的复制组的,原因是上面同一篇文章中的这段代码:
Redis(禁用群集模式)具有副本的群集有三种类型的endpoint;主endpoint、读取器endpoint和节点endpoint。
我知道这可能是一个没有实际意义的问题(两年前你问过这个问题),但如果你需要刷新集群中的主节点(启用集群模式),只需使用配置endpoint,更改就会传播到每个节点。
我有1个VPC——在1个EC2实例(amazon ami)和1个Redis(支持群集模式)下,使用Auth(密码)和对所有IP:端口开放的安全组(仅用于测试)——设置非常简单。 telnet在我的EC2实例(配置endpoint)的6379端口工作 无法使用Redis CLI连接到Redis服务器-无论是配置endpoint还是节点endpoint都无关紧要;使用v.5.0.4版本的Redis C
我是Docker Swarm的新手。我试图用compose文件在Docker swarm上部署redis集群。我希望redis集群使用端口6380,所以我配置了端口,并让它在compose文件中挂载redis配置文件。 但是当我运行时,我得到了一个错误的声明,“对不起,集群配置文件redis-node.conf已经被不同的Redis集群节点使用了。请确保不同的节点使用不同的集群配置文件。” 这是我
Redis streams是否受益于群集模式?假设您有10个流,它们是分布在集群中还是全部分布在同一个节点上?我计划使用Redis streams实现真正的高吞吐量(每秒200万条消息),因此我担心Redis streams在这种规模下的性能。 如果Redis streams不能在集群模式下进行开箱即用的扩展,那么任何关于水平扩展Redis streams的指导都会非常棒。
我们最近选择在应用程序中使用Amazon elastic cache redis,但在查阅文档时,有些事情还不清楚。 1) 禁用群集模式的Redis群集在群集的AWS控制台中有主endpoint,当我们使用jedis客户端连接到主endpoint时,该主endpoint是否将读取流量分配给群集的读取副本?或者应用程序必须显式连接才能读取群集中的副本?绝地武士的客户 2) 为redis启用的群集模式
问题内容: 有人知道Redis复制和Redis分片之间的区别吗? 它们有什么用?Redis将数据存储在内存中,这如何影响复制/分片? 可以同时使用它们吗? 问题答案: 分片几乎是复制的对立面,尽管它们是正交的概念并且可以很好地协同工作。 分片,也称为分区,是通过密钥对数据进行拆分。复制(也称为镜像)是复制所有数据。 分片有助于提高性能,减少任何一种资源的命中和内存负载。复制对于获得高可用性的读取很
问题内容: 我已经在这个问题中尝试过方法,但是由于我在集群模式下工作,因此它不起作用,redis告诉我: (错误)CROSSSLOT请求中的键未哈希到同一插槽 问题答案: 该问题的答案尝试在一个中删除多个键。但是,与给定模式匹配的键可能不会位于同一插槽中,并且如果这些键不属于同一插槽,则Redis Cluster不支持多键命令。这就是为什么您收到错误消息。 为了解决此问题,您需要一对一地使用以下密