如何在django服务器的波动的aws ec2实例中管理memcached集群

时间:2012-05-20 20:00:10

标签: django amazon-ec2 amazon-web-services memcached

在Django中,为了集群memcached节点,使用了一种非常简单的方法。只需列出所有django服务器的settings.py文件中的所有节点地址,如下所示:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': [
            'xxx.xxx.xxx.240:11211',
            'xxx.xxx.xxx.242:11211',
            ...,
        ]
    }
}

显然,每当实例退出或添加新实例时编辑每个实例的setting.py文件都会很痛苦,您将如何自动管理向集群添加新节点?

  • 所有实例都在负载均衡器后面。

可能的非答案:

  • 我也可以专门用一个django实例来运行memcached 单节点,因为我只使用memcached来存储微小的令牌。 但目标是让所有ec2实例都相同。
  • 我也可以使用弹力,但价格昂贵(每月35块钱!:) )对于最小的版本

注意: 我使用memcached来防止celeryd worker访问相同的资源,但是如果偶尔会对资源进行双重访问,则可以。我的代币寿命很短(不到15秒)。因此,只要不经常发生,就会失去memcached节点。

1 个答案:

答案 0 :(得分:1)

如果您的缓存数据非常小,也许您会对像redistogo.com这样的非亚马逊托管缓存服务感兴趣。如果您的数据足够小并且定价非常合理,它们就有免费版本。

这根本不能回答你的问题,但既然你提到了弹性,但却不愿意付出代价,也许它会满足你的需求。