djang内部缓存+Redis
三种粒度缓存
页面局部缓存
""" 由Django渲染的页面
{% load cache %}
{% cache 1 'name' %}
<p>要被缓存的局部内容</p>
{% endcache %}
"""
单个页面
from django.views.decorators.cache import cache_page
@cache_page(10) # 代表该视图函数渲染的页面被缓存10s
def test_cache(request):
import time
c_time = time.time()
return render(request, 'cache.html', locals())
全站缓存
MIDDLEWARE = [
# 响应HttpResponse中设置几个headers(必须放在最上方)
'django.middleware.cache.UpdateCacheMiddleware',
# ...
# 用来缓存通过GET和HEAD方法获取的状态码为200的响应(必须放在最下方)
'django.middleware.cache.FetchFromCacheMiddleware',
]
CACHE_MIDDLEWARE_SECONDS = 10
Redis 数据库
# 1.安装redis与可视化操作工具
# 2.在服务中管理redis服务器的开启关闭
# 3.命令行简单使用redis:
-- redis-cli # 启动客户端
-- set key value # 设置值
-- get key # 取出值
# 4.redis支持:字符串、字典、列表、集合、有序集合
# 5.特点:可持久化、单线程单进程并发
python使用redis
# pip3 install redis
# 非连接池
import redis
r = redis.Redis(host='127.0.0.1', port=6379)
# 连接池
import redis
pool = redis.ConnectionPool(host='127.0.0.1', port=6379)
r = redis.Redis(connection_pool=pool)
Redis的详细操作:https://www.cnblogs.com/liuqingzheng/articles/9833534.html