Django-Redis:在Django中使用redis作為緩存


Django-Redis

參考資料:

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

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

Redis可以干什么?

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

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

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

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

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

記錄分類排行榜。(使用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 關閉保護模式

未完待續……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM