AWS EC2にFlask-Cachingを使ってRedisでビューキャッシュをしてみた
はじめに
機械学習やら色々な新しい事を実践的に試すべく
エロサイトを開発中。あなろぼ
開発実践用にオープンしているので広告は入っておりませんのでお気軽にどうぞ。
色々工夫したアプリケーションの作りになっているのでレスポンスは速いはず。
アプリケーション構成
このサイトの構成は下記になっています。
Nginx
Uwsgi
Flask(Python)
MongoDB
今回トライしたこと
1.Redisの導入
2.Flaskのビューをキャッシュ
1.Amazon Linux2にRedisをインストール
sudo amazon-linux-extras install redis4.0
sudo systemctl enable redis.service
sudo systemctl start redis.service
sudo amazon-linux-extras install redis4.0
sudo systemctl enable redis.service
sudo systemctl start redis.service
今回は動作すればOKなのでこれだけでおk
細かい設定は他を参照
この辺りを参照しました。
http://www.denet.ad.jp/technology/2017/11/redis-centos7.html
2.Flaskのビューをキャッシュ
必要なパッケージのインストール。
sudo pip install Flask-Caching
sudo pip install redis
from flask import Flask
from flask_caching import Cache
app = Flask(__name__)
# Cacheインスタンスの作成
cache = Cache(app, config={
'CACHE_TYPE': 'redis',
'CACHE_DEFAULT_TIMEOUT': 60,
'CACHE_REDIS_HOST': 'localhost',
'CACHE_REDIS_PORT': 6379,
})
@app.route('/')
@cache.cached()
・flask_cachingを呼び出し
・Cacheインスタンスの作成
・アプリケーションのルートの下に「@cache.cached()」を記述するだけ
これだけで自動的にビューをredisにキャッシュしてくれます。
キャッシュにパラメータを指定できます。
timeout
: キャッシュの有効期間 (秒) デフォルトはインスタンス作成時のもの
key_prefix
: キーのプリフィックスで、デフォルトでは"view/リクエストパス"
query_string
: Trueの場合、クエリパラメータが異なるリクエストはクエリパラメータを含むハッシュ値をキーとしてキャッシュされます (デフォルトはFalseで、クエリパラメータが異なっても同一のキーが使われる)リストとかクエリでビューを変更している場合はこちらをTrueにしましょう
うん、めちゃくちゃ速くなった(気がする?)
見てみてくださいな
あなろぼ
Author And Source
この問題について(AWS EC2にFlask-Cachingを使ってRedisでビューキャッシュをしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/yamanaka1213/items/98339277cc26bad60173著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .