如何在 Django 中使用 Memcached?
動態網站提供互動式和自適應網站的事實是它們的計算,包括資料庫查詢、模板渲染和業務邏輯,以生成網站訪問者看到的頁面。這在處理開銷方面比通常從系統伺服器設定訪問檔案要昂貴得多。對於中到高流量的網站,減少儘可能多的開銷至關重要。這就是快取的用武之地。儲存耗時計算的結果以便您不必再次執行它被稱為快取。
快取機制需要很少的設定。具體來說,您必須告訴它快取資料應儲存在何處,無論是在資料庫中、檔案系統中還是記憶體中。這是一個關鍵的決定,它將影響快取的效能,因為某些快取比其他快取快。快取通常比檔案系統或資料庫快取更快,因為它避免了訪問檔案系統或資料庫的開銷。
什麼是 Memcached?
Memcached 是一種基於記憶體的快取技術,最初由 Live Journal 建立用於管理大型負載,然後由 Danga Interactive 開源。Slashdot 和維基百科等網站利用它來大幅提高網站效能,減少資料庫訪問。您可以在 http://danga.com/memcached/ 免費獲取 Memcached。它作為守護程序執行,並獲得一定量的記憶體。其主要功能是提供使用者介面,用於向快取新增、檢索和刪除資料。由於所有資料都儲存在記憶體中,因此沒有資料庫或儲存開銷。
安裝 Memcached 後,您需要安裝 Memcached 的 Python 繫結,這些繫結未包含在 Django 中。這些繫結包含在 memcache.py Python 模組中,可以在以下連結找到 http://www.tummy.com/Community/software/python-memcached/
如何在 Django 中設定 Memcached?
要設定快取首選項,可以更改 settings.py 檔案中 CACHE_BACKEND 設定中的資料。如果開發人員選擇使用快取並且未指定 CACHE_BACKEND,則預設情況下 Django 將使用 :/// 符號。
可以透過將 CACHE_BACKEND 設定為 memcached://ip:port/ 來在 Django 中使用 Memcached。這裡 ip 是 Memcached 守護程序的 IP 地址,port 是 Memcached 正在執行的埠。
Django 專案的本地主機在 127.0.0.1 上執行。在以下示例中,memcached 在同一 IP 地址上執行,埠為 1109
CACHE_BACKEND = 'memcached://127.0.0.1:1109/'
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache', 'LOCATION': '127.0.0.1:1109', } }
Memcached 的優勢
Memcached 的主要優勢在於,它可以在多臺伺服器上執行快取。這意味著 memcached 守護程序在多臺機器上執行,並且所有在多臺機器上執行的程式都將假定它們正在使用單個快取。
這消除了為每臺機器複製快取值的需要。此功能可以按以下方式使用。
CACHE_BACKEND = 'memcached://172.15.25.212:1108;172.16.24.209:1109/'
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache', 'LOCATION': [ '172.15.25.212:1108', ‘172.16.24.209:1109’ } }
Memcached 的缺點
基於記憶體的快取的主要缺點是它是臨時的。如果伺服器崩潰,其中儲存的所有資料都將消失。因此,任何和所有基於快取的儲存都是臨時的,不應成為您唯一的儲存解決方案。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP