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

django中使用memcached示例詳解

 更新時間:2022年06月13日 11:37:53   作者:用戶2200417  
這篇文章主要為大家介紹了django中使用memcached示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

什么是memcached:

  • memcached之前是danga的一個項目,最早是為LiveJournal服務(wù)的,當(dāng)初設(shè)計師為了加速LiveJournal訪問速度而開發(fā)的,后來被很多大型項目采用。官網(wǎng)是www.danga.com或者是memcached.org。
  • Memcached是一個高性能的分布式的內(nèi)存對象緩存系統(tǒng),全世界有不少公司采用這個緩存項目來構(gòu)建大負(fù)載的網(wǎng)站,來分擔(dān)數(shù)據(jù)庫的壓力。Memcached是通過在內(nèi)存里維護(hù)一個統(tǒng)一的巨大的hash表,memcached能存儲各種各樣的數(shù)據(jù),包括圖像、視頻、文件、以及數(shù)據(jù)庫檢索的結(jié)果等。簡單的說就是將數(shù)據(jù)調(diào)用到內(nèi)存中,然后從內(nèi)存中讀取,從而大大提高讀取速度。

哪些情況下適合使用Memcached:存儲驗證碼(圖形驗證碼、短信驗證碼)、登錄session等所有不是至關(guān)重要的數(shù)據(jù)。

安裝和啟動memcached:

windows

安裝:memcached.exe -d install。

啟動:memcached.exe -d start。

linux(ubuntu)

安裝:sudo apt install memcached

啟動: cd /usr/local/memcached/bin ./memcached -d start

可能出現(xiàn)的問題:

提示你沒有權(quán)限:在打開cmd的時候,右鍵使用管理員身份運(yùn)行。

提示缺少pthreadGC2.dll文件:將pthreadGC2.dll文件拷貝到windows/System32.

不要放在含有中文的路徑下面。

啟動memcached:

如果想要使用以上參數(shù)來指定一些配置信息,那么不能使用service memcached start,而應(yīng)該使用/usr/bin/memcached的方式來運(yùn)行。比如/usr/bin/memcached -u memcache -m 1024 -p 11222 start。

  • -d:這個參數(shù)是讓memcached在后臺運(yùn)行。
  • -m:指定占用多少內(nèi)存。以M為單位,默認(rèn)為64M。
  • -p:指定占用的端口。默認(rèn)端口是11211。
  • -l:別的機(jī)器可以通過哪個ip地址連接到我這臺服務(wù)器。如果是通過service memcached start的方式,那么只能通過本機(jī)連接。如果想要讓別的機(jī)器連接,就必須設(shè)置-l 0.0.0.0。

telnet操作memcached:

telnet ip地址 [11211]

添加數(shù)據(jù):

set

語法:

set key flas(是否壓縮) timeout value_length value

示例: set username 0 60 7 zhiliao

add

語法:

add key flas(0) timeout value_length value

示例: add username 0 60 7 xiaotuo set和add的區(qū)別:add是只負(fù)責(zé)添加數(shù)據(jù),不會去修改數(shù)據(jù)。如果添加的數(shù)據(jù)的key已經(jīng)存在了,則添加失敗,如果添加的key不存在,則添加成功。而set不同,如果memcached中不存在相同的key,則進(jìn)行添加,如果存在,則替換。

獲取數(shù)據(jù):

語法: get key

示例: get username

刪除數(shù)據(jù):

語法: delete key

示例: delete username

flush_all:刪除memcached中的所有數(shù)據(jù)。

查看memcached的當(dāng)前狀態(tài):

語法:stats。

通過python操作memcached:

  • 安裝:python-memcached:pip install python-memcached。
  • 建立連接: import memcache mc = memcache.Client(['127.0.0.1:11211','192.168.174.130:11211'],debug=True)
  • 設(shè)置數(shù)據(jù): mc.set('username','hello world',time=60*5) mc.set_multi({'email':'xxx@qq.com','telphone':'111111'},time=60*5)
  • 獲取數(shù)據(jù): mc.get('telphone')
  • 刪除數(shù)據(jù): mc.delete('email')
  • 自增長: mc.incr('read_count')
  • 自減少: mc.decr('read_count')

memcached的安全性:

memcached的操作不需要任何用戶名和密碼,只需要知道m(xù)emcached服務(wù)器的ip地址和端口號即可。因此memcached使用的時候尤其要注意他的安全性。這里提供兩種安全的解決方案。分別來進(jìn)行講解:

  • 使用-l參數(shù)設(shè)置為只有本地可以連接:這種方式,就只能通過本機(jī)才能連接,別的機(jī)器都不能訪問,可以達(dá)到最好的安全性。
  • 使用防火墻,關(guān)閉11211端口,外面也不能訪問。
  ufw enable # 開啟防火墻
  ufw disable # 關(guān)閉防火墻
  ufw default deny # 防火墻以禁止的方式打開,默認(rèn)是關(guān)閉那些沒有開啟的端口
  ufw deny 端口號 # 關(guān)閉某個端口
  ufw allow 端口號 # 開啟某個端口

在Django中使用memcached:

首先需要在settings.py中配置好緩存:

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

如果想要使用多臺機(jī)器,那么可以在LOCATION指定多個連接,示例代碼如下:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': [
            '172.19.26.240:11211',
            '172.19.26.242:11211',
        ]
    }
}

配置好memcached的緩存后,以后在代碼中就可以使用以下代碼來操作memcached了:

from django.core.cache import cache
def index(request):
    cache.set('abc','zhiliao',60)
    print(cache.get('abc'))
    response = HttpResponse('index')
    return response

需要注意的是,django在存儲數(shù)據(jù)到memcached中的時候,不會將指定的key存儲進(jìn)去,而是會對key進(jìn)行一些處理。比如會加一個前綴,會加一個版本號。如果想要自己加前綴,那么可以在settings.CACHES中添加KEY_FUNCTION參數(shù):

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
        'KEY_FUNCTION': lambda key,prefix_key,version:"django:%s"%key
    }
}

以上就是django中使用memcached示例詳解的詳細(xì)內(nèi)容,更多關(guān)于django使用memcached的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Python實現(xiàn)下載網(wǎng)易云音樂的高清MV

    使用Python實現(xiàn)下載網(wǎng)易云音樂的高清MV

    本文給大家分享的是一則使用Python實現(xiàn)下載網(wǎng)易云音樂中高清MV的代碼,本人新手,沒有做特別的功能,僅僅是直接循環(huán)了MV的id,小伙伴們可以自己擴(kuò)展下。
    2015-03-03
  • Python的Flask框架應(yīng)用調(diào)用Redis隊列數(shù)據(jù)的方法

    Python的Flask框架應(yīng)用調(diào)用Redis隊列數(shù)據(jù)的方法

    這里為大家?guī)鞵ython的Flask框架應(yīng)用調(diào)用Redis隊列數(shù)據(jù)的方法,從而能夠?qū)崿F(xiàn)異步無阻塞從而提高某些實時處理情況下程序的性能,需要的朋友可以參考下
    2016-06-06
  • Python操作Word批量生成合同的實現(xiàn)示例

    Python操作Word批量生成合同的實現(xiàn)示例

    這篇文章主要介紹了Python操作Word批量生成合同的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解如何使用python創(chuàng)建和結(jié)束線程

    詳解如何使用python創(chuàng)建和結(jié)束線程

    線程的創(chuàng)建和結(jié)束是多線程編程中的核心概念之一,在本文中,我們將學(xué)習(xí)如何使用 Python 創(chuàng)建線程,并探討如何優(yōu)雅地結(jié)束線程,需要的朋友可以參考下
    2024-04-04
  • 如何使用 Pylint 來規(guī)范 Python 代碼風(fēng)格(來自IBM)

    如何使用 Pylint 來規(guī)范 Python 代碼風(fēng)格(來自IBM)

    本文通過詳細(xì)的理論介紹和簡單易懂的實例全面介紹了 Python 代碼分析工具 Pylint。相信讀者看完后一定可以輕松地將 Pylint 運(yùn)用到自己的開發(fā)工程中
    2018-04-04
  • Python生成ubuntu apt鏡像地址實現(xiàn)

    Python生成ubuntu apt鏡像地址實現(xiàn)

    本文主要介紹了Python生成ubuntu apt鏡像地址實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 一文帶你解鎖Python文件匹配技巧

    一文帶你解鎖Python文件匹配技巧

    在日常的文件操作和數(shù)據(jù)處理中,文件匹配是一個非常常見的任務(wù),本文將詳細(xì)介紹如何使用?Python?實現(xiàn)文件匹配,有需要的小伙伴可以參考下
    2024-12-12
  • python知識:裝飾器@property到底有啥用途

    python知識:裝飾器@property到底有啥用途

    這篇文章主要介紹了python裝飾器@property到底有啥用途,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python中的項目目錄結(jié)構(gòu)

    python中的項目目錄結(jié)構(gòu)

    這篇文章主要介紹了python中的項目目錄結(jié)構(gòu),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python求1到n的階乘之和的實例

    Python求1到n的階乘之和的實例

    這篇文章主要介紹了Python求1到n的階乘之和的實例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論

安庆市| 余庆县| 新河县| 清河县| 鹿泉市| 鲁山县| 巫溪县| 老河口市| 阳原县| 和林格尔县| 偏关县| 沁源县| 桐庐县| 黄大仙区| 绥宁县| 五大连池市| 鄂伦春自治旗| 离岛区| 山阳县| 东海县| 伊金霍洛旗| 河西区| 鹿泉市| 宁海县| 溆浦县| 龙山县| 石城县| 罗江县| 达日县| 手游| 固安县| 清水县| 女性| 千阳县| 鄱阳县| 东明县| 于都县| 怀柔区| 邵东县| 眉山市| 安徽省|