Memcache 예시

이 페이지에서는 Memcache를 사용하기 위한 Python 코드입니다. Memcache는 캐시된 데이터에 빠르게 액세스할 수 있는 고성능 분산 메모리 객체 캐싱 시스템입니다. Memcache에 대한 자세한 내용은 Memcache 개요를 참조하세요.

Memcache 패턴

Memcache는 일반적으로 다음 패턴에서 사용됩니다.

  • 애플리케이션이 사용자 또는 애플리케이션으로부터 쿼리를 수신합니다.
  • 애플리케이션에서 이 쿼리를 충족하는 데 필요한 데이터가 Memcache에 있는지 여부를 확인합니다.
    • 데이터가 Memcache에 있는 경우 애플리케이션은 그 데이터를 사용합니다.
    • 데이터가 Memcache에 없는 경우 애플리케이션은 Datastore를 쿼리하고 이후의 요청을 위해 Memcache에 그 결과를 저장합니다.

아래 의사 코드는 일반적인 Memcache 요청을 보여줍니다.

def get_data():
    data = memcache.get('key')
    if data is not None:
        return data
    else:
        data = query_for_data()
        memcache.add('key', data, 60)
    return data

ndb는 내부적으로 Memcache를 사용하여 쿼리 속도를 높입니다. 그러나 원하는 경우 명시적으로 Memcache 호출을 추가하여 속도 향상을 직접 제어할 수 있습니다.

데이터 캐시하기

다음 예시에서는 Python API를 사용하여 Memcache에서 값을 설정하는 여러 가지 방법을 보여줍니다.

# Add a value if it doesn't exist in the cache
# with a cache expiration of 1 hour.
memcache.add(key="weather_USA_98105", value="raining", time=3600)

# Set several values, overwriting any existing values for these keys.
memcache.set_multi(
    {"USA_98115": "cloudy", "USA_94105": "foggy", "USA_94043": "sunny"},
    key_prefix="weather_",
    time=3600
)

# Atomically increment an integer value.
memcache.set(key="counter", value=0)
memcache.incr("counter")
memcache.incr("counter")
memcache.incr("counter")

add(), set_multi(), set() 메서드에 대한 자세한 내용은 Memcache Python API 문서를 참조하세요.