Coder Social home page Coder Social logo

isabella232 / pymemcache Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pinterest/pymemcache

0.0 0.0 0.0 554 KB

A comprehensive, fast, pure-Python memcached client.

Home Page: https://pymemcache.readthedocs.io/

License: Apache License 2.0

Python 99.82% Shell 0.18%

pymemcache's Introduction

pymemcache

Master Documentation Status

A comprehensive, fast, pure-Python memcached client.

pymemcache supports the following features:

  • Complete implementation of the memcached text protocol.
  • Connections using UNIX sockets, or TCP over IPv4 or IPv6.
  • Configurable timeouts for socket connect and send/recv calls.
  • Access to the "noreply" flag, which can significantly increase the speed of writes.
  • Flexible, modular and simple approach to serialization and deserialization.
  • The (optional) ability to treat network and memcached errors as cache misses.

Installing pymemcache

Install from pip:

pip install pymemcache

For development, clone from github and run the tests:

git clone https://github.com/pinterest/pymemcache.git
cd pymemcache

Run the tests (make sure you have a local memcached server running):

tox

Usage

See the documentation here: https://pymemcache.readthedocs.io/en/latest/

Django

If you're planning on using pymemcache with Django, you might be interested in django-pymemcache. It provides a Django cache backend that is built on pymemcache.

Comparison with Other Libraries

pylibmc

The pylibmc library is a wrapper around libmemcached, implemented in C. It is fast, implements consistent hashing, the full memcached protocol and timeouts. It does not provide access to the "noreply" flag. It also isn't pure Python, so using it with libraries like gevent is out of the question, and its dependency on libmemcached poses challenges (e.g., it must be built against the same version of libmemcached that it will use at runtime).

python-memcached

The python-memcached library implements the entire memcached text protocol, has a single timeout for all socket calls and has a flexible approach to serialization and deserialization. It is also written entirely in Python, so it works well with libraries like gevent. However, it is tied to using thread locals, doesn't implement "noreply", can't treat errors as cache misses and is slower than both pylibmc and pymemcache. It is also tied to a specific method for handling clusters of memcached servers.

memcache_client

The team at mixpanel put together a pure Python memcached client as well. It has more fine grained support for socket timeouts, only connects to a single host. However, it doesn't support most of the memcached API (just get, set, delete and stats), doesn't support "noreply", has no serialization or deserialization support and can't treat errors as cache misses.

External Links

The memcached text protocol reference page:
https://github.com/memcached/memcached/blob/master/doc/protocol.txt
The python-memcached library (another pure-Python library):
https://github.com/linsomniac/python-memcached
Mixpanel's Blog post about their memcached client for Python:
http://code.mixpanel.com/2012/07/16/we-went-down-so-we-wrote-a-better-pure-python-memcache-client/
Mixpanel's pure Python memcached client:
https://github.com/mixpanel/memcache_client

Credits

We're Hiring!

Are you really excited about open-source? Or great software engineering? Pinterest is hiring!

pymemcache's People

Contributors

akatrevorjay avatar alisaifee avatar bwalks avatar cclauss avatar cgordon avatar davedash avatar dcrosta avatar ewdurbin avatar ferasalazzeh avatar harlowja avatar jianguopinterest avatar jogo avatar jparise avatar julian avatar kols avatar krallin avatar mainanick avatar maspwr avatar methane avatar msabramo avatar ngnpope avatar nichochar avatar opapy avatar shargan avatar sirosen avatar sontek avatar suhailpatel avatar thedrow avatar tomkins avatar vhab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.