對於站點緩存,咱們使用redis這款key-value數據庫。Redis有着更爲複雜的數據結構而且提供對他們的原子性操做,這是一個不一樣於其餘數據庫的進化路徑。Redis的數據類型都是基於基本數據結構的同時對程序員透明,無需進行額外的抽象。Redis運行在內存中可是能夠持久化到磁盤,因此在對不一樣數據集進行高速讀寫時須要權衡內存,由於數據量不能大於硬件內存。在內存數據庫方面的另外一個優勢是,相比在磁盤上相同的複雜的數據結構,在內存中操做起來很是簡單,這樣Redis能夠作不少內部複雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,由於他們並不須要進行隨機訪問。
它與其餘key-value數據庫有如下三個特色:html
Redis的優點:python
安裝redis程序員
參考連接:redis安裝
安裝完畢後,啓動redis服務便可。可是這樣的redis尚未密碼來保護,誰均可以進入使用,全部咱們要設置一個密碼。redis
# 在redis.conf中找到requirepass這一行,將其設置密碼 requirepass xxxxxx
這樣之後就能夠用密碼登陸了:數據庫
redis-cli -h 主機ip -p 端口號 -a 密碼
可是對於Django的應用,咱們安裝django-redis這個擴展庫使用,它已經集成了redis的使用在其中,咱們只須要參照其官方文檔配置便可。django
安裝django-redis緩存
pip install django-redis
配置django-redisbash
MIDDLEWARE = [ # 全局cache 'django.middleware.cache.UpdateCacheMiddleware', <---- add here 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', # 全局cache 'django.middleware.cache.FetchFromCacheMiddleware', <---- add here ] # redis緩存 CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://127.0.0.1:6379', 'OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'PASSWORD': os.environ['redis_passwd'], # 隱藏redis的密碼,將其設置在操做系統中 }, }, } REDIS_TIMEOUT = 7*24*60*60 CUBES_REDIS_TIMEOUT = 60*60 NEVER_REDIS_TIMEOUT = 365*24*60*60
這樣能夠作到全局緩存。session