程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

如何使用Memcached實現Django項目緩存

編輯:Python

1. 安裝memcached

這裡以Centos下如何安裝安裝為例,運行如下命令,安裝memcached

sudo yum install memcached

測試是否安裝成功

memcached -help

如果沒有報錯,就表示安裝成功了

2. 運行memcached

memcached -d -m 64 -l 127.0.0.1 -p 11211 -u root

-d:表示後台啟動守護進程

-m: 表示使用多大內存,這裡使用64M

-l:是監聽的服務器IP地址,這裡我們填本地,如果想讓其他機器訪問,寫成0.0.0.0

-p:是端口號, 默認是11211

-u:指定用哪個用戶來運行,這裡指定root

查看memcached是否運行成功,使用如下命令

ps -ef|grep memcached

如果顯示如下圖,表示啟動成功

可以使用如下命令關掉memcached進程

killall -9 memcached

3. 連接Memcached

使用telnet去連接,先安裝telnet,如下命令

sudo yum install telnet

安裝完成後,使用下面的命令連接memcached

telnet 127.0.0.1 11211

出現如下界面,表示連接成功,運行quit退出連接

至此,我們成功安裝了memcached,並能成功運行,下面介紹Django項目如何去使用它

4. 安裝python-mamcached

在自己的項目python環境下安裝,如果是虛擬化經,要先運行虛擬環境再安裝,命令如下

pip install python-memcached

5. 配置Django項目

在我們項目的setting.py文件裡面,加入CACHE選項,如下

CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}

然後根據自己項目的實際情況,設置需要的緩存時間,我的個人Blog緩存時間設置為一天,即60*60*24秒

CACHE_MIDDLEWARE_SECONDS=60*60*24

最後,我們在中間件MIDDLEWARE添加memcached所需Django中間件,由於我選擇的是緩存全站,所以需要的東西如下:注意中間件的位置和順序

'django.middleware.cache.UpdateCacheMiddleware',# 放到中間件第一個位置
...... # 其他中間件
'django.middleware.cache.FetchFromCacheMiddleware',#放在中間件的最後位置

以上就是我們的全部配置和安裝,重啟nginx和uwsgi之後你就可以打開網站測速了,第一次打開的時候可能會比較慢,因為此時剛剛把你請求的東西放到緩存中,當你再次打開,或者說在你剛剛設定的緩存時間內打開,都是秒開的。

6. 注意事項

因為我們設置了24小時緩存,所以在緩存期間內,如果你寫了一篇博客文章,你的網站不會立馬顯示出來,等到緩存時間過期,才會更新出來,如果你想立馬顯示出來,需要手動去清理下緩存,是緩存過期,網站就會重新叢數據庫獲取數據,手動是緩存過期,使用如下命令

# 先連接memcached
telnet 127.0.0.1 11211
#清除緩存
flush_all

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved