Django項目中使用Redis


Django項目中使用Redis

1 redis

Redis 是一個 key-value 存儲系統,常用於緩存的存儲。django-redis 基於 BSD 許可, 是一個使 Django 支持 Redis cache/session 后端的全功能組件.

1.1 為何要用 django-redis ?

  • 持續更新
  • 本地化的 redis-py URL 符號連接字符串
  • 可擴展客戶端
  • 可擴展解析器
  • 可擴展序列器
  • 默認客戶端主/從支持
  • 完善的測試
  • 已在一些項目的生產環境中作為 cache 和 session 使用
  • 支持永不超時設置
  • 原生進入 redis 客戶端/連接池支持
  • 高可配置 ( 例如仿真緩存的異常行為 )
  • 默認支持 unix 套接字
  • 支持 Python 2.7, 3.4, 3.5 以及 3.6

2 redis 的使用

2.1 安裝

安裝 django-redis 最簡單的方法就是用 pip :

pip install django-redis

2.2 作為 cache backend 使用配置

為了使用 django-redis , 你應該將你的 django cache setting 改成這樣:

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

為了更好的互操作性並使連接字符串更加 “標准”, 從 3.8.0 開始 django-redis 使用 redis-py native url notation 作為連接字符串.

redis://[:password]@localhost:6379/0
rediss://[:password]@localhost:6379/0
unix://[:password]@/path/to/socket.sock?db=0

支持三種 URL scheme :

  • redis://: 普通的 TCP 套接字連接
  • rediss://: SSL 包裹的 TCP 套接字連接
  • unix://: Unix 域套接字連接

2.3 作為 session backend 使用配置

Django 默認可以使用任何 cache backend 作為 session backend, 將 django-redis 作為 session 儲存后端不用安裝任何額外的 backend

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

2.4 使用

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

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的讀取操作了,只需要將需要的字段當參數傳入到方法中就好了。


免責聲明!

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



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