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
使用telnet去連接,先安裝telnet,如下命令
sudo yum install telnet
安裝完成後,使用下面的命令連接memcached
telnet 127.0.0.1 11211
出現如下界面,表示連接成功,運行quit退出連接
至此,我們成功安裝了memcached,並能成功運行,下面介紹Django項目如何去使用它
在自己的項目python環境下安裝,如果是虛擬化經,要先運行虛擬環境再安裝,命令如下
pip install python-memcached
在我們項目的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之後你就可以打開網站測速了,第一次打開的時候可能會比較慢,因為此時剛剛把你請求的東西放到緩存中,當你再次打開,或者說在你剛剛設定的緩存時間內打開,都是秒開的。
因為我們設置了24小時緩存,所以在緩存期間內,如果你寫了一篇博客文章,你的網站不會立馬顯示出來,等到緩存時間過期,才會更新出來,如果你想立馬顯示出來,需要手動去清理下緩存,是緩存過期,網站就會重新叢數據庫獲取數據,手動是緩存過期,使用如下命令
# 先連接memcached
telnet 127.0.0.1 11211
#清除緩存
flush_all