标签: amazon-memory-db

如何将 RediSearch 安装到 AWS ElastiCache 或 Amazon MemoryDB 中?

是否可以在 AWS ElastiCache 或 MemoryDB 中安装 RediSearch(Redis 模块)?手动创建倒排索引可能会非常痛苦,如果 AWS 中提供此功能就好了。我找到了使用 EC2 安装它的可能解决方法,但对于面向生产的使用,此解决方案不可行。如果有一个可使用 RediSearch 的托管解决方案会好得多。

我发现也可以将RediSearch作为来自 AWS、Azure 和 GCP 上的 Redis Labs 的Redis Enterprise Cloud上的服务,但我想知道是否可以直接在 AWS 中提供此模块,而无需支付额外的许可证。例如,RedisJson 应该已经在 AWS 中可用。

关于这个老问题, AWS 支持人员确认,到 2021 年,不可能在 AWS ElastiCache 中使用开箱即用的RediSearch 。2023年还是这样吗?

amazon-web-services redis amazon-elasticache redisearch amazon-memory-db

8
推荐指数
1
解决办法
2982
查看次数

与 AWS MemoryDB 集群的连接有时会失败

我们有一个使用 AWS MemoryDB for Redis 的应用程序。我们设置了一个包含一个分片和两个节点的集群。其中一个节点(名为 0001-001)是主读/写节点,而另一个节点是只读副本(名为 0001-002)。

部署应用程序后,当我们使用集群端点连接字符串进行连接时,连接到 MemoryDB 有时会失败。如果我们重新启动应用程序几次,它就会突然开始工作。成功与否似乎是随机的。我们得到的错误如下:

Endpoint Unspecified/ourapp-memorydb-cluster-0001-001.ourapp-memorydb-cluster.xxxxx.memorydb.eu-west-1.amazonaws.com:6379 serving hashslot 6024 is not reachable at this point of time. Please check connectTimeout value. If it is low, try increasing it to give the ConnectionMultiplexer a chance to recover from the network disconnect. IOCP: (Busy=0,Free=1000,Min=2,Max=1000), WORKER: (Busy=0,Free=32767,Min=2,Max=32767), Local-CPU: n/a

  • 如果我们直接连接到主读/写节点,则不会出现此类错误。
  • 如果我们直接连接到只读副本,它总是会失败。它甚至得到上面的错误,抱怨“0001-001”节点。
  • 我们使用.NET Core 6
  • 我们使用 Microsoft.Extensions.Caching.StackExchangeRedis 6.0.4,它依赖于 StackExchange.Redis 2.2.4
  • 该应用程序托管在AWS ECS中

StackExchangeRedisCache 添加到启动文件中的服务集合中:

services.AddStackExchangeRedisCache(o =>
{
   o.InstanceName = redisConfiguration.Instance;
   o.ConfigurationOptions = ToRedisConfigurationOptions(redisConfiguration);
});
Run Code Online (Sandbox Code Playgroud)

...其中 ToRedisConfiguration 返回一个基本的 …

amazon-web-services redis stackexchange.redis redis-cluster amazon-memory-db

7
推荐指数
0
解决办法
1471
查看次数

AWS Redis Cluster MOVED 使用 redis 节点库时出错

我在 AWS 中创建了一个具有 2 个节点的 Redis MemoryDB 集群: 在此输入图像描述

我使用redis节点库 v4.0.0 连接到它,如下所示:

import { createCluster } from 'redis';
(async () => {
    const REDIS_USERNAME = 'test-username';
    const REDIS_PASSWORD = 'test-pass';
    const cluster = createCluster({
        rootNodes: [
            {
                url: `rediss://node1.amazonaws.com:6379`,
            },
            {
                url: `rediss://node2.amazonaws.com:6379`,
            },
        ],
        defaults: {
            url: `rediss://cluster.amazonaws.com:6379`,
            username: REDIS_USERNAME,
            password: REDIS_PASSWORD,
        }
    });
    cluster.on('error', (err) => console.log('Redis Cluster Error', err));
    await cluster.connect();
    console.log('connected to cluster...');
    await cluster.set('key', 'value');
    const value = await cluster.get('key');
    console.log('Value', value);
    await cluster.disconnect(); …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services redis node.js amazon-memory-db

6
推荐指数
1
解决办法
3056
查看次数