django緩存與redis

什么是緩存

緩存系統(tǒng)是為了解決數(shù)據(jù)庫服務(wù)器和web服務(wù)器之間的瓶頸粪摘。如果一個網(wǎng)站的流量很大瀑晒,這個瓶頸將會非常明顯,每次數(shù)據(jù)庫查詢耗費的時間將會非撑且猓可觀苔悦。對于更新速度不是很快的網(wǎng)站,我們可以用靜態(tài)化來避免過多的數(shù)據(jù)庫查詢椎咧。對于更新速度以秒計的網(wǎng)站玖详,靜態(tài)化也不會太理想,可以用緩存系統(tǒng)來構(gòu)建。如果只是單臺服務(wù)器用作緩存蟋座,問題不會太復(fù)雜劳澄,如果有多臺服務(wù)器用作緩存,就要考慮緩存服務(wù)器的負載均衡蜈七。

什么是redis

  • 市面上一般兩種數(shù)據(jù)庫秒拔,一種是mysql、oracle之類的關(guān)系型數(shù)據(jù)飒硅,還就是鍵值數(shù)據(jù)庫砂缩;
  • 鍵值數(shù)據(jù)庫的存儲結(jié)構(gòu)類似于一個字典;
  • Redis是一個開源的使用ANSI C語言編寫三娩、遵守BSD協(xié)議庵芭、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型雀监、Key-Value數(shù)據(jù)庫双吆,并提供多種語言的API。
  • 它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器会前,因為值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型好乐。
  • 數(shù)據(jù)結(jié)構(gòu):
    string(字符串)
    list(雙向鏈表)
    dict(hash表)
    zset(有序集合)
    set(集合)
  • 相比如關(guān)系數(shù)據(jù)的優(yōu)勢:
    a. 它是鍵值數(shù)據(jù)庫,本身數(shù)據(jù)結(jié)構(gòu)查詢就比關(guān)系數(shù)據(jù)庫快
    b. redis是基于內(nèi)存的一個數(shù)據(jù)庫瓦宜,I/O影響的效率較小

安裝操作:

  • 啟動
    sudo service redis start
  • 停止
    sudo service redis stop
  • 重啟
    sudo service redis restart
  • 客戶端操作
    redis-cli

在django中使用redis當作緩存

pip install django-redis
  • 在settings中配置如下
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}
  • 使用頁面緩存
    a. 頁面緩存使用的場景,一般都是變動較小的頁面临庇,比如Index反璃,首頁;
    b. 頁面緩存使用需要注意假夺,因為可能影響你邏輯展示淮蜈;
from django.views.decorators.cache import cache_page
...
url(r'^login/$', cache_page(60)(views.Login.as_view()), name="login"),
  • 訪問緩存
from django.core.cache import cache
  • 新建set(key, value, timeout),
    key:鍵
    value: 值
    timeout: 超時時間, 是一個可選參數(shù)已卷,默認為你配置的超時時間梧田。
cache.set('my_key', 'hello, world!', 30)
  • 添加add(key, value, timeout)它使用與set()相同的參數(shù),但如果指定的鍵已經(jīng)存在悼尾,它不會嘗試更新緩存
cache.add('my_key', 'hello, world!')
  • 設(shè)置多個值set_many 柿扣,請使用set_many()傳遞鍵值對的字典:
cache.set_many({'a': 1, 'b': 2, 'c': 3})
  • 獲取get(key)
cache.get('add_key')
  • 獲取與創(chuàng)建get_or_set(key, value, timeout)
cache.get_or_set("test", "2", 100)
  • 刪除delete(key)
cache.delete('a')
  • 批量刪除 delete_many(keys)
cache.delete_many(['a', 'b', 'c'])
  • 清除所有clear肖方, 該操作一定要慎重
cache.clear()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末闺魏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子俯画,更是在濱河造成了極大的恐慌析桥,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異泡仗,居然都是意外死亡埋虹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門娩怎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搔课,“玉大人,你說我怎么就攤上這事截亦∨滥啵” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵崩瓤,是天一觀的道長袍啡。 經(jīng)常有香客問我,道長却桶,這世上最難降的妖魔是什么境输? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮颖系,結(jié)果婚禮上嗅剖,老公的妹妹穿的比我還像新娘。我一直安慰自己嘁扼,他們只是感情好窗悯,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著偷拔,像睡著了一般蒋院。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上莲绰,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天欺旧,我揣著相機與錄音,去河邊找鬼蛤签。 笑死辞友,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的震肮。 我是一名探鬼主播称龙,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼戳晌!你這毒婦竟也來了鲫尊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤沦偎,失蹤者是張志新(化名)和其女友劉穎疫向,沒想到半個月后咳蔚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡搔驼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年谈火,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舌涨。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡糯耍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出囊嘉,到底是詐尸還是另有隱情谍肤,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布哗伯,位于F島的核電站荒揣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏焊刹。R本人自食惡果不足惜系任,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虐块。 院中可真熱鬧俩滥,春花似錦、人聲如沸贺奠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽儡率。三九已至挂据,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間儿普,已是汗流浹背崎逃。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留眉孩,地道東北人个绍。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像浪汪,于是被迫代替她去往敵國和親巴柿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容