2016-05-26 2 views
0

私はAWS Elasticキャッシュサービスを使用してmemcacheを設定しました。私はエンドポイントにtelnetしてアイテムを保管して取り出せることを確認しました。memcached(AWS Elasticキャッシュ)でFlaskキャッシュを使用する

今、Flaskキャッシュにmemcacheを使用しようとしています。私は次のコードを持っています。

from this import s, d 
from string import translate, maketrans 

from flask import Flask 
from flask.ext.cache import Cache 

app = Flask(__name__) 
cache = Cache(app, config={'CACHE_TYPE': 'memcached', 
            'CACHE_MEMCACHED_SERVERS' : "My endpoint", 
            'CACHE_KEY_PREFIX' : "optimization"}) 
#cache = Cache(app, config={'CACHE_TYPE': 'filesystem', 'CACHE_DIR': '/tmp'}) 


@cache.cached(timeout=10, key_prefix="current_time") 
def get_current_time(): 
    return time.ctime() 

def random_zen_quote(): 
    """Pick a random quote from the Zen of Python""" 
    transtable = maketrans("".join(d.keys()), "".join(d.values())) 
    return random.choice(translate(s, transtable).split("\n")[2:]) 

@app.route("/") 
def zen(): 
    return """ 
    <ul> 
     <li><strong>It is cached:</strong> {cached}</li> 
     <li><strong>It is not cached:</strong> {not_cached}</li> 
    </ul> 
    """.format(
      cached=get_current_time(), 
      not_cached=random_zen_quote() 
    ) 

if __name__ == "__main__": 
    app.run(debug=True, port=5000, host='0.0.0.0') 

私はthisを参照しています。

私もpylibmcをインストールしました。私は上記のコードを実行し、URLを襲ったとき、私は次のエラーを取得する:

Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app 
    response = self.make_response(self.handle_exception(e)) 
    File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception 
    reraise(exc_type, exc_value, tb) 
    File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception 
    reraise(exc_type, exc_value, tb) 
    File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "/projects/mv2/test.py", line 34, in zen 
    cached=get_current_time(), 
    File "/usr/local/lib/python2.7/site-packages/Flask_Cache-0.13.1-py2.7.egg/flask_cache/__init__.py", line 289, in decorated_function 
    rv = self.cache.get(cache_key) 
    File "/usr/local/lib/python2.7/site-packages/werkzeug/contrib/cache.py", line 406, in get 
    return self._client.get(key) 

私はエラーが何を意味するのかわかりません。

また、ローカルファイルシステムを使用すると、期待どおりに動作します。

答えて

-1

これを使用してください。

'CACHE_MEMCACHED_SERVERS':( "マイエンドポイント")、

+0

このコードスニペットは、[説明を含む]質問、(http://meta.stackexchange.com/questions/114762/explaining-を解決することができるが完全コードベースの回答)は、あなたの投稿の質を向上させるのに本当に役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – lokusking

関連する問題