1

Windows システムで memcached サービスを実行しており、次のキャッシュ設定を持つように開発者設定を構成しました。

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
        'TIMEOUT': 3600,
        'OPTIONS': {
            'MAX_ENTRIES': 100
        }
    }
}

そして、次のコードを使用して、キャッシュ内/キャッシュからコンテンツを設定および取得しています。

from django.core.cache import cache
def get_element(fsid):
    element = cache.get(str(fsid))  # get element from memcache if present
    if element is None:
        info("cache miss for fsid-"+str(fsid))
        fs = FlowStatusModel.objects.get(pk=fsid)
        pickle_path = fs.pickle
        gcs_pickle_path = fs.gcs_pickle
        try:
            info("reading from local disk")
            with open(pickle_path, 'rb') as handle:
                element = pickle.load(handle)
        except:
            info("local disk failed. copying file from cloud storage bucket to local disk")
            create_and_copy(gcs_pickle_path, pickle_path)
            with open(gcs_pickle_path, 'rb') as handle:
                element = pickle.load(handle)
        info("adding fsid-"+str(fsid) + " to cache with 1hour timeout")
        cache.set(str(fsid), element, 3600)
    return element

ログを見ると、常にキャッシュ ミスが発生しています。django が要素をキャッシュに設定できたかどうかはわかりませんでした。python manage.py shellシンプルでから試してみるとsetgetデータを取り戻すことができます。コマンドプロンプトからコマンドを実行して、リクエストを受信して​​いるかどうかを確認しようとしましmemcached.exe -vvたが、どちらのシナリオでも (dev server/manage.py シェルから) コンソールに出力された情報が表示されません。問題を解決するための助けに感謝します。

4

1 に答える 1