Django使用redis緩存服務(wù)器的實(shí)現(xiàn)代碼示例
redis相信大家都很熟悉了,和memcached一樣是一個(gè)高性能的key-value數(shù)據(jù)庫,至于什么是緩存服務(wù)器,度娘都有很明白的介紹了,我在這里就不一一介紹了。
那我們一般什么情況下才會(huì)使用緩存服務(wù)器呢?可不是什么情況都需要的哦,一般來說是在需要頻繁對(duì)一個(gè)字段讀取的時(shí)候才會(huì)需要將這個(gè)字段放入到緩存服務(wù)器上,而且由于key-value數(shù)據(jù)庫一般只是放很簡(jiǎn)單的數(shù)據(jù),所以在選擇保存的對(duì)象的時(shí)候要注意選擇好。
下面我就來介紹如何在Django中配置使用redis數(shù)據(jù)庫,首先是先安裝redis了,在Ubuntu中執(zhí)行下面這句命令:
#安裝Redis服務(wù)器端
sudo apt-get install redis-server
然后為了能在Django中使用redis,還需要安裝redis for Django的插件:
pip install django-redis
這是一個(gè)開源的項(xiàng)目,github地址是https://github.com/niwibe/django-redis,感謝作者。
那么現(xiàn)在就是在Django的settings中配置了。
CACHES = {
'default': {
'BACKEND': 'redis_cache.cache.RedisCache',
'LOCATION': '127.0.0.1:6379',
"OPTIONS": {
"CLIENT_CLASS": "redis_cache.client.DefaultClient",
},
},
}
REDIS_TIMEOUT=7*24*60*60
CUBES_REDIS_TIMEOUT=60*60
NEVER_REDIS_TIMEOUT=365*24*60*60
其實(shí)只是需要CACHES中的那幾條就可以了,后面這三句可以不需要的,只是我后面的例子里需要用到,我就在這里配置了。
好了,現(xiàn)在連接和配置都已經(jīng)完成了,那么在項(xiàng)目中該如何使用呢?接下來看下面這段例子吧。
from django.conf import settings
from django.core.cache import cache
#read cache user id
def read_from_cache(self, user_name):
key = 'user_id_of_'+user_name
value = cache.get(key)
if value == None:
data = None
else:
data = json.loads(value)
return data
#write cache user id
def write_to_cache(self, user_name):
key = 'user_id_of_'+user_name
cache.set(key, json.dumps(user_name), settings.NEVER_REDIS_TIMEOUT)
通過上面的這兩個(gè)方法就可以實(shí)現(xiàn)對(duì)redis的讀取操作了,只需要將需要的字段當(dāng)參數(shù)傳入到方法中就好了。
那么之前提到的memcached呢?其實(shí)也是一樣的配置:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
當(dāng)然用法也是和我上面的例子是一樣的了。其實(shí)對(duì)于redis這樣的緩存服務(wù)器來說,配置都是很簡(jiǎn)單的,而具體的使用也不難,官網(wǎng)上面也有很多簡(jiǎn)單明了的例子可以供我們參考,只有一點(diǎn)需要注意的,那就是對(duì)于要將什么樣的信息保存到redis才是我們真正需要關(guān)心的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python的地形三維可視化Matplotlib和gdal使用實(shí)例
這篇文章主要介紹了Python的地形三維可視化Matplotlib和gdal使用實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以了解下。2017-12-12
python之Character string(實(shí)例講解)
下面小編就為大家?guī)硪黄猵ython之Character string(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
Python守護(hù)進(jìn)程(daemon)代碼實(shí)例
這篇文章主要介紹了Python守護(hù)進(jìn)程(daemon)代碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-03-03
Python線程池模塊ThreadPoolExecutor用法分析
這篇文章主要介紹了Python線程池模塊ThreadPoolExecutor用法,結(jié)合實(shí)例形式分析了Python線程池模塊ThreadPoolExecutor的導(dǎo)入與基本使用方法,需要的朋友可以參考下2018-12-12
Python數(shù)據(jù)類型中的“冒號(hào)“[::]——分片與步長(zhǎng)操作示例
這篇文章主要介紹了Python數(shù)據(jù)類型中的“冒號(hào)“[::]——分片與步長(zhǎng)操作,結(jié)合實(shí)例形式分析了Python基本數(shù)據(jù)類型中的分片與步長(zhǎng)使用方法及相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
Python通過隊(duì)列來實(shí)現(xiàn)進(jìn)程間通信的示例
這篇文章主要介紹了Python通過隊(duì)列來實(shí)現(xiàn)進(jìn)程間通信的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-10-10
Python輕松讀寫TOML文件實(shí)現(xiàn)示例
這篇文章主要介紹了Python輕松讀寫TOML文件實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01

