【问题标题】:Dynamically add new Memcached server without restarting Django无需重启 Django 即可动态添加新的 Memcached 服务器
【发布时间】:2016-01-30 14:47:06
【问题描述】:

我计划在我的项目中使用django-cachalotmemcached 后端来缓存查询。

我在 Elastic Beanstalk 上进行了此设置,它可以通过添加或删除 EC2 实例来扩大或缩小规模。目前memcached在实例上启动时,我将这个实例的IP添加到数据库中。

我创建的 pylibmc memcached 客户端偶尔会读取数据库以获取服务器 IP,并在服务器 IP 已更改或已添加新 IP 时创建新客户端。

如何将服务器动态添加到djangomemcached 缓存后端? 或者我如何设置memcached客户端django是手动使用?

【问题讨论】:

    标签: python django caching memcached pylibmc


    【解决方案1】:

    这可能是付出了很多努力却收效甚微。请记住,django 在您定义的不同 memcached 服务器之间分发您缓存的对象。因此,如果通过自动缩放将其中的所有项目排除在考虑范围之外,那么其中的所有项目都会丢失。

    默认情况下,django 不支持将新的 memcached 服务器动态添加到列表中。要使其正常工作,您必须通过修改默认的memcached backend 来创建自定义缓存后端

    【讨论】:

    • 这正是我正在做的。即创建自定义缓存后端。我保留了num_replicas=4,所以memcached 创建了缓存的副本,我们在自动缩放时丢失了最小缓存
    猜你喜欢
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 2013-10-10
    相关资源
    最近更新 更多