做旅游景区网站,网站导航栏制作,南充网站建设网站,做网站投注员挣钱吗目的
本关目的#xff1a;实现使用Redis缓存网页。
相关知识
本文将教会你掌握#xff1a;1#xff0e;SETEX命令#xff0c;2#xff0e;hash()方法。
在动态生成网页的时候#xff0c;通常会使用模板#xff08;template#xff09;来简化网页的生成#xff0c;…目的
本关目的实现使用Redis缓存网页。
相关知识
本文将教会你掌握1SETEX命令2hash()方法。
在动态生成网页的时候通常会使用模板template来简化网页的生成现在已经不再需要我们手写一整个页面。通常一个网页包括头部尾部侧边栏工具栏和内容域等部分组成每个部分都会独立使用一个模板来编写。
尽管都是动态的生成网页了但大多数网站的内容都不会经常变化大的变化大多数网页的内容也是在一定周期内保持不变这些网页就不需要动态生成。
本关卡中我们会通过缓存的方式避免生成这些页面减少动态生成页面所花费的时间降低服务器的负载提高网页访问速度。
我们需要在请求被响应之前通过一个缓存函数判断
尝试从缓存中取出该请求的响应页面并返回若上述缓存不存在失效则 响应该请求生成页面缓存至 Redis生存时间为10分钟将该页面返回
我们可以使用字符串键来存储缓存页面所以你可以使用 GET 命令尝试取出缓存页面但当我们想要缓存页面时则应该使用 SETEX 命令该命令和 SET 命令的区别是它是一个原子性atomic操作关联值和设置生存时间两个动作会在同一时间内完成所以它在 Redis 用作缓存时很常用。它的语法如下
conn.setex(key, value, seconds)
其中seconds 是键的生存时间单位为秒。
我们将真实的请求响应简化一下变为返回一个字符串 content for http://xxx这样我们整个缓存方法就是
def cache_request(request_url):
page_key cache: str(hash(request_url))
content conn.get(page_key)if not content:
content content for request_url
conn.setex(page_key, content, 600)return content
其中我们使用了 hash() 方法将一个请求的 URL 地址通过哈希编码转化成为一个字符串该字符串和 URL 一一对应所以我们可以使用这个哈希值作为缓存的键。