參考資料:html
https://django-redis-chs.readthedocs.io/zh_CN/latest/python
http://www.redis.cn/documentation.htmlredis
記錄評論數、熱度、瀏覽量等。(使用hash)django
記錄個人收藏、個人文章等列表類型的數據。(使用zset)後端
記錄某篇文章的點贊人員列表。(使用zset)centos
緩存頻繁訪問但又不太多的東西,例如:熱門推薦。(使用hash)緩存
記錄與當前瀏覽的對象相關的對象,例如:與當前文章相關的文章。(使用list)session
記錄分類排行榜。(使用zset)數據結構
緩存歷史記錄,如:登陸歷史等。(使用zset或hash)異步
無論什麼數據類型,在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 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
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 | 關閉保護模式 |
未完待續……