Python에서 사용되는 python-memcache (memcached)의 좋은 예? [닫은]


91

Python과 web.py 프레임 워크를 사용하여 웹 앱을 작성 중이며 전체적으로 memcached를 사용해야합니다.

나는 python-memcached 모듈 에 대한 좋은 문서를 찾으려고 인터넷을 검색해 왔지만 내가 찾을 수있는 것은 MySQL 웹 사이트의이 예제 뿐이며 그 방법에 대한 문서는 훌륭하지 않습니다.

답변:


145

매우 간단합니다. 키와 만료 시간을 사용하여 값을 씁니다. 키를 사용하여 값을 얻습니다. 시스템에서 키를 만료 할 수 있습니다.

대부분의 클라이언트는 동일한 규칙을 따릅니다. memcached 홈페이지 에서 일반적인 지침과 모범 사례를 읽을 수 있습니다. .

정말로 파헤 치고 싶다면 출처를 살펴 보겠습니다. 다음은 헤더 주석입니다.

"""
client module for memcached (memory cache daemon)

Overview
========

See U{the MemCached homepage<http://www.danga.com/memcached>} for more about memcached.

Usage summary
=============

This should give you a feel for how this module operates::

    import memcache
    mc = memcache.Client(['127.0.0.1:11211'], debug=0)

    mc.set("some_key", "Some value")
    value = mc.get("some_key")

    mc.set("another_key", 3)
    mc.delete("another_key")

    mc.set("key", "1")   # note that the key used for incr/decr must be a string.
    mc.incr("key")
    mc.decr("key")

The standard way to use memcache with a database is like this::

    key = derive_key(obj)
    obj = mc.get(key)
    if not obj:
        obj = backend_api.get(...)
        mc.set(key, obj)

    # we now have obj, and future passes through this code
    # will use the object from the cache.

Detailed Documentation
======================

More detailed documentation is available in the L{Client} class.
"""

감사합니다. 소스 코드 주석이 매우 유용합니다.
Jonathan Prior

'mc'가 무엇인지 이해할 수 없습니다. 설명해 주시겠습니까?
bodacydo

9
mcMemcache 클라이언트 객체이며 memcached 연결을 나타냅니다.
moshen 2010-08-13

4
@Kevin 混合 理论이 모든 질문은 python-memcached 에 관한 것 입니다. 그것이 제공하는 것 memcache입니다.
Oli 2011

1
@themiurgo 위의 코드 는 실제 python-memcached 코드의 헤더에있는 주석입니다 . 그것이 2009 년의 방식이며 오늘날에도 그랬습니다. 전체 주석은 여전히 ​​"정수의 문자열 표현이어야합니다"라고 말합니다. 그것이 잘못되었다고 생각되면 버그를 신고하여 문서를 업데이트하도록하십시오.
Oli

43

pylibmc대신 사용하는 것이 좋습니다.

python-memcache의 드롭 인 대체물로 작동 할 수 있지만 훨씬 빠릅니다 (C로 작성 되었기 때문에). 여기에서 유용한 문서를 찾을 수 있습니다 .

그리고 질문에, pylibmc는 드롭 인 대체물 역할을하므로 python-memcache 프로그래밍에 대한 pylibmc 문서를 참조 할 수 있습니다.


3
참고 pylibmc파이썬 3. 작업을하지 않는이
JBG

2
사실이지만 python-memcachedPython 3도 지원하지 않습니다. pylibmc는 현재 Python 3 지원 릴리스를 준비하고 있습니다
anthonyryan1 2014

10
둘 다 이제 Python3을 지원합니다.
Aidin 2016-06-20

1
설치에 대한 참고 사항 : apt-get install libmemcached-dev그리고pip install pylibmc
Christian

나에게 문제는 pylibmc가 Linux에서 빌드 도구가 필요하고 Windows에 설치하기가 어렵다는 것입니다. 혼합 된 win / lin 환경을 사용하므로 호환성을 위해 python-memcached로 다시 전환했습니다. 가장 큰 문제는 Linux 프로덕션 서버에 빌드 도구를 설치하는 것에 대한 정책이었습니다. python-memcached와 pylibmc의 속도 차이는 거의 문제가되지 않습니다.
Cris

7

좋은 경험 법칙 : Python에 내장 된 도움말 시스템을 사용하십시오. 아래 예 ...

jdoe@server:~$ python
Python 2.7.3 (default, Aug  1 2012, 05:14:39) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import memcache
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'memcache']
>>> help(memcache)

------------------------------------------
NAME
    memcache - client module for memcached (memory cache daemon)

FILE
    /usr/lib/python2.7/dist-packages/memcache.py

MODULE DOCS
    http://docs.python.org/library/memcache

DESCRIPTION
    Overview
    ========

    See U{the MemCached homepage<http://www.danga.com/memcached>} for more about memcached.

    Usage summary
    =============
...
------------------------------------------

더 이상 유효하지 않습니다. 2.7.3은 기본적으로 설치된 Memcache 모듈과 함께 제공되지 않으며 문서 링크도 끊어졌습니다.
iandouglas

1
@iandouglas : 당신이 작성한 것은 제 데비안 6.0.7에서 사실이지만 apt-get install python-memcache, 모듈 만 가져 오면되었습니다.
jfg956
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.