Pythontr

husonet | Tarih: 30.08.2014

Memcached nedir? Python Memcached Kullanımı

Memcached python önbellek yönetimi

Memcached "daemon" servis olarak çalışan bir yazılımdır amacı ise bir veya daha fazla verileri önbellek üzerinde depolamamızı sağlar ve istediğimizde tekrar önbelleğe başvurup kullanabilmemize olanak tanır.

Pyhon üzerinde kullanımı

Memcached Kurulum

aptitude install memcached
aptitude install python-memcache


Python Memcached örnek kodu
#!/usr/bin/python
import memcache

servers = ['127.0.0.1:11211', '127.0.0.1:11212']
mmc = memcache.Client(servers, debug=1)

key = mmc.get('key1001')
if not key:
print("memcache'de deger yok")
deger = 'deger1001'
# 30 saniye cache de tut
mmc.set('key1001', deger, 30)·
else:
print("memcache de deger var")
deger = mmc.get('key1001')

print(deger)


Python memcache komutları
Memcache'e kaydedilirken değerler otomatik olarak serileştirilir.

Client(sunucu_listesi)
get(key) -> Değer yoksa None gelir.
set(key, value, [expire]) -> expire süresi boyunca değer saklanır.
0 olursa expire olmaz.
expire süresi 30 günden (30*24*60*60) fazla ise
epoch değeri olarak kabul edilir.
delete(key, [time]) -> time süresince değer saklanır ve sonra silinir.
Bu süre boyunca değer değiştirilemez.
incr(key, [value]) -> Değeri value değeri kadar arttırır.
decr(key, [value]) -> Value verirmezse 1 artar.[/quote]


Memcached istatistikleri

aptitude install telnet

telnet 127.0.0.1 11211

stats

STAT pid 17110 -> pid
STAT uptime 190 -> Oturum süresi
STAT time 1321789537 -> Epoch time
STAT version 1.4.5 -> Sürüm
STAT pointer_size 32
STAT rusage_user 0.008000 -> Oturum için toplam user süresi
STAT rusage_system 0.056003 -> Oturum için toplam sistem süresi
STAT curr_connections 5 -> Açık bağlantı sayısı
STAT total_connections 13 -> Oturum için yapılan toplam bağlantı sayısı
STAT connection_structures 7
STAT cmd_get 12 -> Oturum için toplam get komutu sayısı
STAT cmd_set 2 -> Oturum için toplam set komutu sayısı
STAT cmd_flush 0 -> Oturum için toplam flush komutu sayısı
STAT get_hits 10 -> Oturum için depodan cevaplanan get sayısı
STAT get_misses 2 -> Oturum için cevaplanamayan get sayısı
STAT delete_misses 0 -> Oturum için gerçekleştirilen delete sayısı
STAT delete_hits 0 -> Oturum için key'i olmayan delete sayısı
STAT incr_misses 0 -> Oturum için key'i olmayan incr sayısı
STAT incr_hits 5 -> Oturum için gerçekleştirilen incr sayısı
STAT decr_misses 0 -> Oturum için key'i olmayan decr sayısı
STAT decr_hits 0 -> Oturum için gerçekleştirilen decr sayısı
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 335 -> Memcached'in ağdan okuduğu veri miktarı
STAT bytes_written 4305 -> Memcached'in ağa yazdığı veri miktarı
STAT limit_maxbytes 67108864 -> Memcached'in kaydedebileceği maksimum veri miktarı
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT bytes 60 -> Kayıtlı değerleri saklamak için kullanılan alan boyutu
STAT curr_items 1 -> Kayıtlı değer sayısı
STAT total_items 2 -> Oturum için toplam kaydedilen değer sayısı
STAT evictions 0 -> Oturum için hafızayı boşaltmak için kaç geçerli değerin silindiği
STAT reclaimed 0
END

stats slabs

STAT 1:chunk_size 80 -> Her chunk için ayrılan alan miktarı
STAT 1:chunks_per_page 13107 -> Her sayfadaki chunk sayısı
STAT 1:total_pages 1 -> Toplam sayfa sayısı
STAT 1:total_chunks 13107 -> Toplam chunk sayısı
STAT 1:used_chunks 1 -> Kullanılan chunk sayısı
STAT 1:free_chunks 0 -> Boş chunk sayısı
STAT 1:free_chunks_end 13106 -> Son sayfanın sonundaki toplan boş chunk miktarı
STAT 1:mem_requested 60 -> İhtiyaç duyulan gerçek RAM alanı
STAT 1:get_hits 10 -> Toplam get sayısı
STAT 1:cmd_set 2 -> Toplam set sayısı
STAT 1:delete_hits 0 -> Toplam delete sayısı
STAT 1:incr_hits 5 -> Toplam incr sayısı
STAT 1:decr_hits 0 -> Toplam decr sayısı
STAT 1:cas_hits 0
STAT 1:cas_badval 0
STAT active_slabs 1 -> Aktif slabs sayısı
STAT total_malloced 1048560 -> Slab sayfaları için ayrılan toplam hafıza alanı
END

stats items

STAT items:1:number 1 -> Kayıtlı olan değer sayısı
STAT items:1:age 1958 -> En eski değerin saniye olarak yaşı
STAT items:1:evicted 0 -> Alan yaratmak için silinen değer sayısı
STAT items:1:evicted_nonzero 0 -> Son geçerli değer silme zamanı (nonzero)
STAT items:1:evicted_time 0 -> Son geçerli değer silme zamanı
STAT items:1:outofmemory 0 -> Hafıza yetersiz sonucu alan değer sayısı
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 0
END

stats sizes

STAT 64 1 -> (Boyut, adet) çifti
END

quit