相关疑难解决方法(0)

使用 Elastic BeanStalk + Django 设置 ElastiCache Redis

另一个 stackoverflow答案说您需要设置一个 elasticache.config 文件来自动使用 ElastiCache 创建 Redis 服务器。

但是,我可以在 AWS (Elasticache) 上创建一个 Redis 实例并将其端点添加到 Django 设置中吗?例如,使用Django-redis

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://<REDIS AWS ENDPOINT AND PORT HERE>",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我怀疑上述内容可能会导致多个 beanstalk 服务器实例出现问题。鉴于此,我倾向于使用 MemCache 而不是 Redis,因为有一个明确编写的 Django 包用于与 AWS Elasticache for Memcache 交互:django-elasticache

谢谢,安迪。

django amazon-web-services redis amazon-elasticache amazon-elastic-beanstalk

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

django 上的 memcache 不起作用

我在Celery. 受此启发 - http://ask.github.io/celery/cookbook/tasks.html#ensuring-a-task-is-only-executed-one-at-a-time我决定使用 memcache 添加锁我的任务。

这些是我所做的更改:

python-memcached

# settings for memcache
CACHES = {
  'default': {
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
    'LOCATION': '127.0.0.1:11211',
   }
}
Run Code Online (Sandbox Code Playgroud)

在此之后,我登录到我的 shell 并执行以下操作

>>> import os
>>> import django
>>> from django.core.cache import cache
>>> os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings.base')
>>> cache
<django.core.cache.DefaultCacheProxy object at 0x101e4c860>
>>> cache.set('my_key', 'hello, world!', 30) #display nothing. No T/F
>>> cache.get('my_key') #Display nothing.
>>> from django.core.cache import caches
>>> caches['default']
<django.core.cache.backends.memcached.MemcachedCache object at 0x1048a5208>
>>> caches['default'].set('my_key', 'hello, world!', 30) #display nothing. …
Run Code Online (Sandbox Code Playgroud)

django memcached django-cache celery python-memcached

5
推荐指数
1
解决办法
3357
查看次数

你如何确认django正在使用memcached?

我有一个python django webserver,我试图使用memcached来加快速度.

我已经下载并安装了memcached并启动了一个名为virtual的用户,如下所示:

/usr/local/bin/memcached -u virtual & 
Run Code Online (Sandbox Code Playgroud)

在django setting.py上,我把memcached服务器放在这个:

MEMCACHE_HOSTS = ['192.168.101.1:11211']
Run Code Online (Sandbox Code Playgroud)

我可以telnet 192.168.101.1 11211和统计数据,我确实看到一些统计数据等.

我怎么知道我的django服务器是否使用了memcached?是否有我可以查看的目录或一些要确认的文件?

感谢您的任何见解.

manage.py的内容:

#!/usr/bin/env python
import os
import sys

from django.core.management import execute_from_command_line


if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)
Run Code Online (Sandbox Code Playgroud)

从命令行:

phthon

from django.core.management import execute_from_command_line
Run Code Online (Sandbox Code Playgroud)

当我这样做时:

from django.core.cache import cache
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib64/python2.6/site-packages/django/core/cache/__init__.py", line 69, in <module>
    if DEFAULT_CACHE_ALIAS not in settings.CACHES:
  File "/usr/local/lib64/python2.6/site-packages/django/conf/__init__.py", line 54, in __getattr__ …
Run Code Online (Sandbox Code Playgroud)

django memcached

3
推荐指数
1
解决办法
1143
查看次数