我在AWS EC2上使用Flask-Caching和Redis对视图进行了缓存试验
首先
為了實際嘗試機器學習和各種新鮮事物,我正在開發一個成人網站。您可以放心使用,因為它是為開發實踐而開放的,不會有廣告。這是一款經過精心設計的應用程式,所以應該反應速度很快。
应用程序配置
这个网站的构建包括以下内容:
Nginx
Uwsgi
Flask(Python)
MongoDB
我尝试了这次的事情。
1. Redis的引入
2. 对Flask的视图进行缓存
在亚马逊Linux2上安装Redis。
sudo amazon-linux-extras install redis4.0
sudo systemctl enable redis.service
sudo systemctl start redis.service
这一次只需要确保功能正常即可,所以只需要这个就可以了。
详细设置请参考其他资料。
我参考了以下内容。
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中。
您可以在缓存中指定参数。
超时:缓存的有效期(秒),默认为创建实例时的值。
键前缀:默认为“view/请求路径”的键前缀。
查询字符串:如果为True,则包含不同查询参数的请求将以包含查询参数的哈希值作为键进行缓存(默认为False,即使查询参数不同,仍使用相同的键)。如果使用列表或查询更改视图,请将此选项设置为True。
嗯,感觉它变得非常快了(吧?)
请看一下,亲自试试看看吧。