Redis缓存session
配置Django缓存数据到redis中
# diango的缓存配置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
# 用户的session信息,历史浏览记录存储在redis数据库9中
"LOCATION": "redis://127.0.0.1:6379/9",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
配置session信息缓存在redis中
# 配置session存储在前面配置的redis数据库中
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
保存用户cookie,session信息
# 与数据库的数据进行校验用户密码正确性
user = authenticate(request, username=username, password=password)
# 业务处理:用户登录
# 返回应答
if user is not None:
# 用户名密码正确
if user.is_active:
# 用户已激活
# 记录用户的登录状态
login(request, user)
# 获取接下来要访问的地址,默认访问主页
next_url = request.GET.get("next", reverse("goods:index"))
response = redirect(next_url)
# 判断是否记住用户名
if remember == "on":
response.set_cookie("username", username, max_age=7*24*3600)
else:
response.delete_cookie("username")
return response
Redis缓存历史浏览记录
链接Redis数据库
链接redis数据库有两种:
1.使用redis默认的StrictRedis链接
2.使用redis提供的get_redis_connection方法链接default配置;
方式一:
# 使用redis默认的方式与django链接
# from redis import StrictRedis
# sr = StrictRedis(host="localhost", port=6379, db=9)
方式二:
from django_redis import get_redis_connection
con = get_redis_connection('default') # 这里的default指的是settings配置中CACHE的default配置
缓存历史浏览记录
首先确定我们的需求,是一个用户保存一个浏览商品id集合,然后确定是以redis的hash格式存储,存储类似于
history_userid:[goods1, goods2, goods3]
然后我们要考虑情况,比如我们原来浏览过一条商品&