1. 程式人生 > >django指定緩存redis

django指定緩存redis

會話 優化 ssi end 刪除session 鍵值對 本地 request對象 art

在開發模式下你需要考慮的問題有很多,比如如何優化django性能,

利用nosql數據庫是一個很好的選擇

django session機制默認是儲存在 數據庫中

但是想提升性能使用redis儲存是一個很好的選擇

在redis中保存session,需要引入第三方擴展,我們可以使用django-redis來解決。

安裝擴展

pip install django-redis

但是你需要在settings.py 設置

CACHES = {
  "default": {
  "BACKEND": "django_redis.cache.RedisCache",
  "LOCATION": "redis://127.0.0.1:6379/1",
  "OPTIONS": {
  "CLIENT_CLASS": "django_redis.client.DefaultClient",
   }
  }
 }

如果redis的ip地址不是本地回環127.0.0.1,而是其他地址,訪問Django時,可能出現Redis連接錯誤,如下:

技術分享圖片

解決方案:

修改redis的配置文件,添加特定ip地址。

打開redis的配置文件 sudo vim /etc/redis/redis.conf 在如下配置項進行修改(如要添加10.211.55.5地址)

技術分享圖片

切記改完一定重啟redis數據庫不然不會生效

sudo service redis-server restart

3 Session操作

通過HttpRequest對象的session屬性進行會話的讀寫操作。

1) 以鍵值對的格式寫session。

request.session[‘鍵‘]=值

2)根據鍵讀取值。

request.session.get(‘鍵‘,默認值)

3)清除所有session,在存儲中刪除值部分。

request.session.clear()

4)清除session數據,在存儲中刪除session的整條數據。

request.session.flush()

5)刪除session中的指定鍵及值,在存儲中只刪除某個鍵及對應的值。

del request.session[‘鍵‘]

6)設置session的有效期

request.session.set_expiry(value)
 

django指定緩存redis