Django-Redis:在Django中使用redis做爲緩存

Django-Redis

參考資料:html

https://django-redis-chs.readthedocs.io/zh_CN/latest/python

http://www.redis.cn/documentation.htmlredis

Redis能夠幹什麼?

記錄評論數、熱度、瀏覽量等。(使用hash)django

記錄個人收藏、個人文章等列表類型的數據。(使用zset)後端

記錄某篇文章的點贊人員列表。(使用zset)centos

緩存頻繁訪問但又不太多的東西,例如:熱門推薦。(使用hash)緩存

記錄與當前瀏覽的對象相關的對象,例如:與當前文章相關的文章。(使用list)session

記錄分類排行榜。(使用zset)數據結構

緩存歷史記錄,如:登陸歷史等。(使用zset或hash)異步

Redis的數據結構

無論什麼數據類型,在Redis老是以key,value的形式存在,能夠經過key得到value的值,redis數據結構類型的差別取決於value的類型。

例如:string類型的value是string,set類型的value是set,zset的value的類型是zset,而key都是string。

=========================================================================================
string(字符串)       {"key1":"hello Wrold" }  
set(集合)            {"key2":{'a':null,'b':null}}      set至關於字典,只是全部鍵對應的值都是null
zset(有序集合)        有順序的set      
hash(字典)          {"key3":{'url1':'http://22'}}     能夠用來存儲用戶信息
list(列表)           {"key4": [1,2,4,3]                 
=========================================================================================

string的應用

常見的用途:緩存用戶基本信息。
將用戶的基本信息序列化成JSON字符串,而後將序列化後的字符串保存到 Redis 來緩存。反過來,當取用戶
信息時,會通過一次反序列化。

list的應用

一般用做異步隊列、存儲列表數據。

hash的應用

無序字典,字典的值只能是字符串。

hash的最後一個元素刪除後,該數據結構自動被刪除。

hash也能夠存儲用戶的信息,和string不一樣的是,hash能夠對用戶信息的每一個字段單獨存儲。

set集合的應用

set的最後一個元素刪除後,該數據結構自動被刪除。

set中不存在重複元素,利用這個特性,咱們能夠用來存儲防止重複事件發生的狀況。例如:在抽獎活動系統中存儲中獎用戶,防止重複中獎。

Django-Redis

Django 支持 Redis cache/session 後端的全功能組件。

說明

Django-Redis能夠和Django配合使用,充當cache/session

Django-Redis依賴於pyredis

功能

做爲session後端

SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

做爲cache後端

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

思考

爲何使用Django-Redis時,在配置文件裏配置一下,就能生效?

以緩存爲例,請對比一下三個類:RedisCache,DatabaseCache,MemcachedCache

from django_redis.cache import RedisCache
from django.core.cache.backends.db import DatabaseCache
from django.core.cache.backends.memcached import MemcachedCache

CentOS安裝redis

tar xzf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make install

啓動服務

redis-server

關閉鏈接

強行終止 Redis 進程可能會致使數據丟失。正確中止Redis的方式應該是向Redis發送SHUTDOWN命令,方法爲:

redis-cli shutdown

配置文件

經常使用參數說明

參數 說明
daemonize yes 使Redis以守護進程模式運行
pidfile /var/run/redis_端口號.pid 設置Redis的PID文件位置
port 端口號 設置Redis監聽的端口號
dir /var/redis/端口號 設置持久化文件存放位置
protected-mode no 關閉保護模式

未完待續……

相關文章
相關標籤/搜索