【问题标题】:How to use Elasticache with Django's MemcachedCache Backend如何将 Elasticache 与 Django 的 MemcachedCache 后端一起使用
【发布时间】:2015-06-05 05:31:08
【问题描述】:

将 Amazon 的 Elasticache 服务(带有 Memcached 引擎)与 Django 的 MemcachedCache 后端一起使用的正确方法是什么?

我有一个在本地运行的本地 Memcached 服务,它适用于 Django 设置:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

我认为使用 Elasticache 就像创建 Memcached 集群实例然后将我的设置更改为:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'instance-name.abcdef.cfg.use1.cache.amazonaws.com:11211',
    }
}

但是,当我在本地对此进行测试时,缓存会静默失败并且无法成功存储任何内容。

我做错了什么?如何让 MemcachedCache 后端显示真实的错误消息?我是否需要使用特定于 Elasticache 的 Django 后端,例如 this

【问题讨论】:

  • 我不认为这是同一个问题。我尝试了接受的答案中列出的 3 个步骤,并且每次都超时,即使我的缓存集群与其他所有内容都在同一个安全组中,并且有一条规则允许来自我的 IP 在端口 11211 上的 TCP 连接。

标签: django memcached amazon-elasticache django-cache


【解决方案1】:

您无法从 AWS 网络外部连接到 ElastiCache 实例。即使您的安全组在允许来自您的 IP 地址(或整个互联网)的流量方面可能存在例外情况,但 AWS 的网络不会接受任何非来自其网络内部的流量。

此配置很好,但仅适用于 EC2 实例。

或者,您可以关注this guide(这也证实了我上面的回答),这基本上涉及您启动一个 EC2 实例,您将在 CACHES 配置中使用其 IP 地址。此实例配置为在端口 11211 上的传入流量之间执行 NAT,并将其转发到您的 ElastiCache 节点。这种配置远非理想,但不应该在生产中使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 2014-07-03
    相关资源
    最近更新 更多