亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Python 學(xué)習(xí)筆記 - Memcached

オリジナル 2016-11-05 15:47:14 332
サマリー:Memcached是一個(gè)分布式內(nèi)存對(duì)象緩存系統(tǒng),他把數(shù)據(jù)緩存在內(nèi)存里面來減少對(duì)數(shù)據(jù)庫(kù)的訪問,從而提高動(dòng)態(tài)網(wǎng)頁的訪問速度。他的基本結(jié)構(gòu)是key/value(鍵值對(duì))。首先來安裝一下服務(wù)器端:<span style="font-size:14px;">[root@sydnagios ~]# yum install mem

Memcached是一個(gè)分布式內(nèi)存對(duì)象緩存系統(tǒng),他把數(shù)據(jù)緩存在內(nèi)存里面來減少對(duì)數(shù)據(jù)庫(kù)的訪問,從而提高動(dòng)態(tài)網(wǎng)頁的訪問速度。他的基本結(jié)構(gòu)是key/value(鍵值對(duì))。


首先來安裝一下服務(wù)器端:

<span style="font-size:14px;">[root@sydnagios ~]# yum install memcached<br>Loaded plugins: fastestmirror, langpacks<br>Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast<br>base                                                     | 3.6 kB     00:00<br>epel/x86_64/metalink                                     | 2.0 kB     00:00<br>epel                                                     | 4.3 kB     00:00<br>extras                                                   | 3.4 kB     00:00<br>updates                                                  | 3.4 kB     00:00<br>(1/5): epel/x86_64/group_gz                                | 170 kB   00:00<br>(2/5): epel/x86_64/updateinfo                              | 671 kB   00:00<br></span>


然后服務(wù)器端跑起來

<span style="font-size:14px;">[root@sydnagios ~]# memcached -d -m 10 -u root -l 10.2.1.107 -p 12000 -c 256 -P          /tmp/memcached.pid<br></span>

   

參數(shù)說明:

    -d 是啟動(dòng)一個(gè)守護(hù)進(jìn)程

    -m 是分配給Memcache使用的內(nèi)存數(shù)量,單位是MB

    -u 是運(yùn)行Memcache的用戶

    -l 是監(jiān)聽的服務(wù)器IP地址

    -p 是設(shè)置Memcache監(jiān)聽的端口,最好是1024以上的端口

    -c 選項(xiàng)是最大運(yùn)行的并發(fā)連接數(shù),默認(rèn)是1024,按照你服務(wù)器的負(fù)載量來設(shè)定

    -P 是設(shè)置保存Memcache的pid文件

接下來安裝Python的客戶端模塊 https://pypi.python.org/pypi/python-memcached

解壓拷貝到sys.path對(duì)應(yīng)的目錄,就能直接用了


看看第一個(gè)例子,里面debug是為了顯示錯(cuò)誤的 生產(chǎn)環(huán)境里面不要用

<span style="font-size:14px;">#!/usr/bin/env python<br># -*- coding:utf-8 -*-<br># Author Yuan Li<br>import memcache<br>mc = memcache.Client(['10.2.1.107:12000'], debug=True)<br>mc.set("foo", "bar")<br>mc.add("name","John")<br>print( mc.get('foo'))<br>print(mc.get('name'))<br>-----------<br>bar<br>John<br></span>

memcached的第二個(gè)特定是他默認(rèn)支持集群,原理是內(nèi)存里面創(chuàng)建一個(gè)主機(jī)的列表;每個(gè)主機(jī)有一個(gè)權(quán)重,權(quán)重的數(shù)目和主機(jī)在列表里面出現(xiàn)的數(shù)目成正比。通過算法可以決定把鍵值對(duì)放在哪個(gè)服務(wù)器的內(nèi)存里面。


例2

<span style="font-size:14px;">mc = memcache.Client([('1.1.1.1:12000', 1), ('1.1.1.2:12000', 2), ('1.1.1.3:12000', 1)], debug=True) <br>mc.set('k1', 'v1')<br></span>

 除了get和set以外,他還具有以下常用函數(shù)

add
添加一條鍵值對(duì),如果已經(jīng)存在的 key,重復(fù)執(zhí)行add操作異常

replace

replace 修改某個(gè)key的值,如果key不存在,則異常

set 和 set_multi

set            設(shè)置一個(gè)鍵值對(duì),如果key不存在,則創(chuàng)建,如果key存在,則修改
set_multi   設(shè)置多個(gè)鍵值對(duì),如果key不存在,則創(chuàng)建,如果key存在,則修改

delete 和 delete_multi

delete             在Memcached中刪除指定的一個(gè)鍵值對(duì)
delete_multi    在Memcached中刪除指定的多個(gè)鍵值對(duì)

append 和 prepend

append    修改指定key的值,在該值 后面 追加內(nèi)容
prepend   修改指定key的值,在該值 前面 插入內(nèi)容

decr 和 incr  

incr  自增,將Memcached中的某一個(gè)值增加 N ( N默認(rèn)為1 )
decr 自減,將Memcached中的某一個(gè)值減少 N ( N默認(rèn)為1 )

gets 和 cas

這個(gè)組合可以避免臟數(shù)據(jù)的產(chǎn)生,如果在gets數(shù)據(jù),和cas數(shù)據(jù)回去這個(gè)過程中有其他用戶執(zhí)行了get,那么則不允許修改


手記を発表する

人気のある見出し語