最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django項(xiàng)目如何配置Memcached和Redis緩存?選擇哪個(gè)更有優(yōu)勢?

 更新時(shí)間:2021年04月06日 14:38:50   作者:大江狗  
這篇文章主要介紹了Django項(xiàng)目如何配置Memcached和Redis緩存,幫助大家更好的理解和學(xué)習(xí)使用django框架,感興趣的朋友可以了解下

對于中大型網(wǎng)站而言,使用緩存減少對數(shù)據(jù)庫的訪問次數(shù)是提升網(wǎng)站性能的關(guān)鍵手段之一。在Django項(xiàng)目生產(chǎn)環(huán)境中最常用的緩存后臺(tái)是Memcached和Redis。今天小編就手把手教你如何在Django項(xiàng)目中配置Memcached和Redis作為緩存后臺(tái)。那么它們兩個(gè)到底哪個(gè)更好呢? 本文會(huì)對比這兩個(gè)存儲(chǔ)系統(tǒng)并在文末給出答案。

Memcache緩存

Memcache是一個(gè)高性能的分布式內(nèi)存對象緩存系統(tǒng),是Django原生支持的最快最有效的緩存系統(tǒng)。Memcached的優(yōu)點(diǎn)是速度快,屬于分布式緩存,支持同時(shí)在多臺(tái)服務(wù)器上運(yùn)行 (Django會(huì)把它們當(dāng)成一個(gè)大緩存)。

第一步:安裝Memcached

windows系統(tǒng):官網(wǎng)下載,解壓安裝即可。

Linux系統(tǒng):Ubuntu系統(tǒng)需要使用sudo apt-get install libevent ibevent-dev安裝Memcached依賴環(huán)境,再使用sudo apt-get install memcached安裝memcached。

第二步:啟動(dòng)Memcached

# Linux系統(tǒng)-前臺(tái)啟動(dòng)
/usr/local/memcached/bin/memcached -p 11211 -m 64m -vv
# Linux系統(tǒng)-作為后臺(tái)服務(wù)啟動(dòng)
/usr/local/memcached/bin/memcached -p 11211 -m 64m -d

第三步:pip安裝python-memcached

Python操作memcached數(shù)據(jù)庫需要安裝python-memcached或pylibmc, 推薦前者。

pip install pyhon-memcached

第四步:將memcached設(shè)為Django緩存后臺(tái)

# 本地緩存,使用localhost
CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  'LOCATION': '127.0.0.1:11211',
 }
}

# 使用unix soket通信
CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  'LOCATION': 'unix:/tmp/memcached.sock',
 }
} 

# 分布式緩存,多臺(tái)服務(wù)器,支持配置權(quán)重。
CACHES = {
 'default': {
  'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  'LOCATION': [
   '172.19.26.240:11211',
   '172.19.26.242:11211',
  ]
  # 我們也可以給緩存機(jī)器加權(quán)重,權(quán)重高的承擔(dān)更多的請求,如下:
  'LOCATION': [
   ('172.19.26.240:11211',5),
   ('172.19.26.242:11211',1),
  ]
 }
 }

Redis緩存

Redis 是當(dāng)今速度最快的內(nèi)存型非關(guān)系型(NoSQL)型數(shù)據(jù)庫。Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等多種數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。

第一步:安裝Redis

  • windows系統(tǒng):官網(wǎng)下載,解壓安裝即可, 記得勾上加入環(huán)境變量。
  • Linux系統(tǒng):Ubuntu系統(tǒng)可使用sudo apt-get install redis-server安裝。

第二步:啟動(dòng)Redis服務(wù)

# Windows系統(tǒng):cmd進(jìn)入redis安裝目錄,啟動(dòng)redis服務(wù)
redis-server.exe redis.windows.conf

# Linux系統(tǒng):進(jìn)入redis安裝目錄啟動(dòng)redis服務(wù)
redis-server /etc/redis/redis.conf 

# 打開redis交互命令行,用于測試(可選)
redis-cli.exe -h 127.0.0.1 -p 6379 # windows系統(tǒng)下另打開一個(gè)窗口
redis-cli # linux系統(tǒng)

注意:默認(rèn)情況下,訪問Redis服務(wù)器是不需要密碼的,為了讓其他服務(wù)器使用同增加安全性我們建議設(shè)置Redis服務(wù)器的訪問密碼。

由于redis默認(rèn)綁定本機(jī)的,所以第一步取消該設(shè)置:

#編輯配置文件
sudo vim /etc/redis/redis.conf

用vim打開該配置文件后,注釋掉下面這行:

# bind 127.0.0.1

然后設(shè)置登錄密碼。由于配置文件較長,命令模式下輸入/requirepass foobared快速搜索該配置項(xiàng):

#找到下面這一行并去除注釋,未修改之前:
#requirepass foobared

#修改成:
requirepass your_pwd #設(shè)置新的密碼

修改后使用redis-server restart重啟服務(wù)器使配置生效。以后從其它服務(wù)器訪問redis時(shí)攜帶你設(shè)置的密碼即可:

redis-cli -a your_pwd -h hostip

第三步:pip安裝django-redis

Redis安裝好并且啟動(dòng)后,你還需要通過pip安裝django-redis才能在Django中操作redis數(shù)據(jù)庫。

pip install django-redis

第四步:將Redis設(shè)為Django緩存后臺(tái)

CACHES = {
 'default': {
  'BACKEND': 'django_redis.cache.RedisCache',
  'LOCATION': 'redis://your_host_ip:6379', # redis所在服務(wù)器或容器ip地址
  "OPTIONS": {
   "CLIENT_CLASS": "django_redis.client.DefaultClient",
    "PASSWORD": "your_pwd", # 你設(shè)置的密碼
  },
 },
}

你還可以在settings.py設(shè)置緩存默認(rèn)過期時(shí)間(非必須)。

REDIS_TIMEOUT=24*60*60
CUBES_REDIS_TIMEOUT=60*30
NEVER_REDIS_TIMEOUT=365*24*60*60

測試緩存是否設(shè)置成功

在你修改完settings.py中關(guān)于緩存的配置后,你一定想知道Django緩存是否設(shè)置成功。你可以輸入下面命令打開Python的命令交互窗口:

python manage.py shell

然后逐條輸入以下命令進(jìn)行測試。如果無任何報(bào)錯(cuò),說明你緩存設(shè)置成功。

from django.core.cache import cache #引入緩存模塊

cache.set('k1', '555', 60*1) #寫入key為k1,值為555的緩存,有效期1分鐘
cache.has_key('k1')#判斷key為k1是否存在
cache.get('k1') #獲取key為k1的緩存結(jié)果

Memcached vs Redis

Memcached和Redis 兩者都是基于內(nèi)存的、鍵-值數(shù)據(jù)存儲(chǔ)系統(tǒng),速度都很快,而且支持分布式部署,然而兩者的區(qū)別也挺大的。

  • 數(shù)據(jù)結(jié)構(gòu):與memcached相比,Redis擁有更多的數(shù)據(jù)結(jié)構(gòu)(如list,set,zset,hash)并且支持豐富的數(shù)據(jù)操作。
  • 鍵值尺寸上限:Redis每個(gè)鍵值(value)的存儲(chǔ)尺寸上限高達(dá)512MB,而Memcached每個(gè)鍵值尺寸最大不超過1MB。
  • 數(shù)據(jù)持久化:Memcached不支持?jǐn)?shù)據(jù)持久化,服務(wù)器重啟后緩存數(shù)據(jù)就沒了,而Redis不僅支持支持緩存數(shù)據(jù)在硬盤上的持久化,還支持master-slave模式的數(shù)據(jù)備份。

從各方面看,Redis功能特性遠(yuǎn)優(yōu)于Memcached。如果你的企業(yè)要選緩存系統(tǒng),小編建議直接上redis就夠了。

以上就是Django項(xiàng)目如何配置Memcached和Redis緩存?選擇哪個(gè)更有優(yōu)勢?的詳細(xì)內(nèi)容,更多關(guān)于Django項(xiàng)目配置Memcached和Redis緩存的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Eclipse中Python開發(fā)環(huán)境搭建簡單教程

    Eclipse中Python開發(fā)環(huán)境搭建簡單教程

    這篇文章主要為大家分享了Eclipse中Python開發(fā)環(huán)境搭建簡單教程,步驟簡潔,一目了然,可以幫助大家快速搭建python開發(fā)環(huán)境,感興趣的小伙伴們可以參考一下
    2016-03-03
  • python實(shí)現(xiàn)整數(shù)序列求和

    python實(shí)現(xiàn)整數(shù)序列求和

    這篇文章主要介紹了python實(shí)現(xiàn)整數(shù)序列求和,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python 字典的打印實(shí)現(xiàn)

    python 字典的打印實(shí)現(xiàn)

    這篇文章主要介紹了python 字典的打印實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • python字符串的多行輸出的實(shí)例詳解

    python字符串的多行輸出的實(shí)例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python字符串的多行輸出的實(shí)例詳解內(nèi)容,有興趣的朋友們跟著學(xué)習(xí)下。
    2021-06-06
  • 對python3.4 字符串轉(zhuǎn)16進(jìn)制的實(shí)例詳解

    對python3.4 字符串轉(zhuǎn)16進(jìn)制的實(shí)例詳解

    今天小編就為大家分享一篇對python3.4 字符串轉(zhuǎn)16進(jìn)制的實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python經(jīng)典百題之畫圓形多種解決辦法

    python經(jīng)典百題之畫圓形多種解決辦法

    在Python中,您可以使用各種庫和工具來繪制圖形,其中包括繪制圓形,下面這篇文章主要給大家介紹了關(guān)于python經(jīng)典百題之畫圓形的多種解決辦法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • Pycharm中python調(diào)用另一個(gè)文件類或者函數(shù)

    Pycharm中python調(diào)用另一個(gè)文件類或者函數(shù)

    本文主要介紹了Pycharm中python調(diào)用另一個(gè)文件類或者函數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python如何讀取MySQL數(shù)據(jù)庫表數(shù)據(jù)

    Python如何讀取MySQL數(shù)據(jù)庫表數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了Python如何讀取MySQL數(shù)據(jù)庫表數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Python編程快速上手——選擇性拷貝操作案例分析

    Python編程快速上手——選擇性拷貝操作案例分析

    這篇文章主要介紹了Python選擇性拷貝操作,結(jié)合具體實(shí)例形式分析了Python文件遍歷、查找、復(fù)制拷貝等相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • Python Docx庫完美操作word文檔實(shí)例探究

    Python Docx庫完美操作word文檔實(shí)例探究

    這篇文章主要為大家介紹了Python Docx庫完美操作word文檔,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評論

平定县| 高密市| 新建县| 藁城市| 上高县| 姜堰市| 安吉县| 四平市| 和田市| 雅江县| 马龙县| 宁海县| 通化县| 合山市| 林口县| 汉川市| 房产| 罗定市| 天台县| 彭州市| 屯留县| 怀集县| 元谋县| 定日县| 北辰区| 时尚| 阜南县| 巴彦淖尔市| 武汉市| 郁南县| 金山区| 武穴市| 盖州市| 历史| 托克逊县| 泰兴市| 巴马| 桃江县| 林州市| 太仓市| 凤台县|