2016-12-15 8 views
0

私はrediscloudを使用して、私のdjangoインストールにmemcacheサポートを提供しています。 SASL認証のユーザ名とパスワードを設定できます(saslが問題になるかどうかはわかりません)。djangoでmemcacheに認証情報を指定する方法は?

私はジャンゴからそれらを供給するための正しい構文が見つかりませんでした:

CACHES = { 
    "default": { 
     "BACKEND": "django.core.cache.backends.memcached.MemcachedCache", 
     "LOCATION": "pub-memcache-********.com:17****", 
     "username": "user", 
     "password": "pass" 
    } 
} 

正しい構文は、何ですか?

EDIT:代わりにPyLibMCCacheをインストール

、私は接続できません。

settings.py

os.environ[ 'MEMCACHE_SERVERS' ] = 'pub-****:****' 
os.environ[ 'MEMCACHE_USERNAME' ] = '*' 
os.environ[ 'MEMCACHE_PASSWORD' ] = '*' 

CACHES = { 
    'default': { 
     'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache', 
     'LOCATION': 'pub-****.com:****', 
     'BINARY' : True, 
    } 
} 

エラーで:

error 3 from memcached_get(:1:ddd-37041): (0x1068af060) CONNECTION FAILURE, ::rec() returned zero, server has disconnected, host: pub-*.com: -> libmemcached/io.cc:484

私は認証を無効にすると、このエラーは発生しません。

答えて

0

あなたはそのための外部ライブラリを使用する必要がある場合がありますrediscloud人から

Django has direct support for pylibmc. [...] Two reasons to use django-pylibmc instead are:

  • You need to use the binary protocol
  • You need to use a username and password to access the memcached server (such as with Memcachier on Heroku).
+0

私は本当にそうでした。しかし、私はそれがユーザー名とパスワードを取得することはできません。私はこれをsettings.py os.environ ['MEMCACHE_USERNAME'] = '*'に追加しようとしました os.environ ['MEMCACHE_PASSWORD'] = '*'またはMEMCACHE_USERNAME = '*' MEMCACHE_PASSWORD = '*'接続。 –

+0

コードによれば、これで十分です。https://github.com/django-pylibmc/django-pylibmc/blob/master/django_pylibmc/memcached.py#L70-L71を参照してください。私はそこにブレークポイントを挿入してデバッグしようとします。 – JoseKilo

+0

params.get( 'USERNAME')をどのように設定しますか?あなたはどこにUSERNAMEを入れますか? –

0

回答:

https://github.com/django-pylibmc/django-pylibmc

pip install django-pylibmc

彼らのREADMEには、それを説明します

in some environments,binary protocol with authentication is required where bmemcached module which supports memcached binary protocol with authentication.

We request you to please try resolving the error by using django-bmemcached.

To do so, install django-bmemcached:

pip install python-binary-memcached

and,

pip install django-bmemcached

Next, configure your CACHES in the settings.py file:

import os 
import urlparse 
import json 

CACHES = { 
    'default': { 
     'BACKEND': 'django_bmemcached.memcached.BMemcached', 
     'LOCATION': '******.com:1****', 
     'OPTIONS': { 
        'username': 'user', 
        'password': 'pass' 
      } 
    } 
} 

これは動作し、認証されたmemcachedサーバーへのアクセスを許可します。

これはmemcachedで動作するさらに別の方法です。

関連する問題