安裝實(shí)驗(yàn)所需模塊
pip3 install django-redis
pip3 install Django==2.1.5
創(chuàng)建django項(xiàng)目
django-admin startproject redis_site
- 進(jìn)入項(xiàng)目文件夾
redis_site
中
可以看到生成了一個(gè)manage.py
文件以及項(xiàng)目同名的主項(xiàng)目文件夾
,進(jìn)入主項(xiàng)目文件可以看到一些初始文件
創(chuàng)建項(xiàng)目
修改settings.py文件
- 在
settings.py
中配置django cache
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://172.22.0.9:6379", # redis容器的ip:端口
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient", #客戶端
"PASSWORD": "", #設(shè)置redis密碼
# "PARSER_CLASS": "redis.connection.HiredisParser", #解析器
# "SOCKET_TIMEOUT": 10, #連接超時(shí)時(shí)間
# "CONNECTION_POOL_CLASS_KWARGS": {
# "max_connections": 2, #連接池的最大連接數(shù)净蚤,滿足高并發(fā)需求
# }
}
}
}
- 在
settings.py
文件中加入一行痊银,如下所示:
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
作用: 將django.contrib.sessions.backends.cache
設(shè)置為存儲(chǔ)引擎
設(shè)置完后如下:
設(shè)置配置文件
- 創(chuàng)建應(yīng)用 appredis
django-admin startapp appredis
image.png
- 編寫session視圖函數(shù)
appredis
文件夾下的views.py
定義set
和get
函數(shù)
from django.shortcuts import render,HttpResponse
def set_session(request):
request.session['username']='shark'
request.session['age']=18
return HttpResponse("設(shè)置sesson成功")
def get_session(request):
username=request.session['username']
age = request.session['age']
return HttpResponse(username+":"+str(age))
image.png
- 在主路由下的urls.py文件中添加url路由
from django.contrib import admin
from django.urls import path
from appredis import views
urlpatterns = [
path('set_session/',views.set_session),
path('get_session/',views.get_session),
path('admin/', admin.site.urls),
]
- 確保啟動(dòng)redis服務(wù)端纵寝,默認(rèn)方式啟動(dòng)
redis-server /etc/redis/6379.conf
redis-cli -p 6379
發(fā)送ping命令得到pong即可
image.png
- 啟動(dòng)django
python3 manage.py runserver
-
訪問視圖,設(shè)置一條session信息,存入redis數(shù)據(jù)庫
image.png -
訪問視圖兽叮,獲取session信息
image.png 檢查redis數(shù)據(jù)庫
redis-cli -p 6379
127.0.0.1:7001> keys *
image.png
-
查看此 key 的值
image.png