Redis缓存网页及数据行

 

缓存网页

在有些网站上的首页不会经常发生大的变化,这些页面不需要每次载入都要动态生成的内容,我们可以使用缓存来降低网站处理相同负载所需的服务器数量,并让网站的速度变得更快。

Flask+Redis使用缓存页面的功能:

import redis
from flask import Flask,request
app = Flask(__name__)
@app.route(/index)
def index():
    conn = redis.Redis(connection_pool=pool)
    content = cache_request(conn,request.url,callback)
    return content

def cache_request(conn,request,callback):

    # 1.判断请求是否可以被缓存
    if not can_cache(conn,request):
        return callback(request)
    # 2.生成key
    page_key = "cache" + hash_request(request)
    print("page_key:",page_key)
    #3.判断是否已经被缓存
    content = conn.get(page_key)
    #如果没有被缓存,则生成缓存,过期时间300秒
    if not content:
        content = callback(request)
        conn.setex(page_key,300,content)
    return content
#判断此请求是否应该被缓存
def can_cache(conn,request):
    return True
#
def hash_request(request):
    return str(hash(request))

def callback(request):
   return <h1>Hello World!</h1>
if __name__ == __main__:
    pool = redis.ConnectionPool(host=localhost, port=6379, decode_responses=True)
    app.run(host=127.0.0.1,port=8080,debug=True)

#  pool = redis.ConnectionPool(host=‘localhost‘, password=‘密码‘,port=6379, decode_responses=True)
#  pool = redis.ConnectionPool(host=‘localhost‘, port=6379, decode_responses=True)

关于flask其他缓存方面:使用 Flask-Cache 缓存应用

 

缓存数据行

待续。

 

Redis缓存网页及数据行

上一篇:彻底理解js中this的指向,不必硬背。


下一篇:网络对抗技术 20174302王漫天 Exp8 Web基础