Django分析之使用redis緩存服務器

        時間長沒有更新了,這段時間一直忙着一個項目,今天就記錄一個如今常常會用到的技術吧。git

        redis相信你們都很熟悉了,和memcached同樣是一個高性能的key-value數據庫,至於什麼是緩存服務器,度娘都有很明白的介紹了,我在這裏就不一一介紹了。github

        那咱們通常什麼狀況下才會使用緩存服務器呢?可不是什麼狀況都須要的哦,通常來講是在須要頻繁對一個字段讀取的時候纔會須要將這個字段放入到緩存服務器上,並且因爲key-value數據庫通常只是放很簡單的數據,因此在選擇保存的對象的時候要注意選擇好。redis

        下面我就來介紹如何在Django中配置使用redis數據庫,首先是先安裝redis了,在Ubuntu中執行下面這句命令:數據庫

#安裝Redis服務器端
~ sudo apt-get install redis-server

        而後爲了能在Django中使用redis,還須要安裝redis for Django的插件:django

pip install django-redis

這是一個開源的項目,github地址是https://github.com/niwibe/django-redis,感謝做者。json

        那麼如今就是在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

其實只是須要CACHES中的那幾條就能夠了,後面這三句能夠不須要的,只是我後面的例子裏須要用到,我就在這裏配置了。服務器

      好了,如今鏈接和配置都已經完成了,那麼在項目中該如何使用呢?接下來看下面這段例子吧。memcached

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)

經過上面的這兩個方法就能夠實現對redis的讀取操做了,只須要將須要的字段當參數傳入到方法中就行了。性能

那麼以前提到的memcached呢?其實也是同樣的配置:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

       固然用法也是和我上面的例子是同樣的了。其實對於redis這樣的緩存服務器來講,配置都是很簡單的,而具體的使用也不難,官網上面也有不少簡單明瞭的例子能夠供咱們參考,只有一點須要注意的,那就是對於要將什麼樣的信息保存到redis纔是咱們真正須要關心的。

相關文章
相關標籤/搜索