All Projects → pinterest → Pymemcache

pinterest / Pymemcache

Licence: apache-2.0
A comprehensive, fast, pure-Python memcached client.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pymemcache

Memcache Info
Simple and efficient way to show information about Memcache.
Stars: ✭ 84 (-84.78%)
Mutual labels:  memcached, memcache
Wp Spider Cache
Your friendly neighborhood caching solution for WordPress
Stars: ✭ 133 (-75.91%)
Mutual labels:  memcached, memcache
Xmemcached
High performance, easy to use multithreaded memcached client in java.
Stars: ✭ 715 (+29.53%)
Mutual labels:  memcached, memcache
Memjs
A memcache client for node using the binary protocol and SASL authentication
Stars: ✭ 161 (-70.83%)
Mutual labels:  memcached, memcache
go-elasticache
Thin abstraction over the Memcache client package gomemcache (https://github.com/bradfitz/gomemcache) allowing it to support AWS ElastiCache cluster nodes
Stars: ✭ 15 (-97.28%)
Mutual labels:  memcached, memcache
mdserver-web
Simple Linux Panel
Stars: ✭ 1,064 (+92.75%)
Mutual labels:  memcached, memcache
Overlord
Overlord是哔哩哔哩基于Go语言编写的memcache和redis&cluster的代理及集群管理功能,致力于提供自动化高可用的缓存服务解决方案。
Stars: ✭ 1,884 (+241.3%)
Mutual labels:  memcached, memcache
Ninja Mutex
Mutex implementation for PHP
Stars: ✭ 180 (-67.39%)
Mutual labels:  memcached, memcache
rust-memcache
memcache client for rust
Stars: ✭ 106 (-80.8%)
Mutual labels:  memcached, memcache
memcache
Node.js memcached client with the most efficient ASCII protocol parser
Stars: ✭ 26 (-95.29%)
Mutual labels:  memcached, memcache
memcached
Memcached Operator for Kubernetes
Stars: ✭ 18 (-96.74%)
Mutual labels:  memcached, memcache
Ring
Python cache interface with clean API and built-in memcache & redis + asyncio support.
Stars: ✭ 404 (-26.81%)
Mutual labels:  memcache
Cache
Cache library
Stars: ✭ 310 (-43.84%)
Mutual labels:  memcached
Quack
Quack Toolkit is a set of tools to provide denial of service attacks. Quack Toolkit includes SMS attack tool, HTTP attack tool and many other attack tools.
Stars: ✭ 305 (-44.75%)
Mutual labels:  memcached
Neard
🎲 Portable WAMP software stack
Stars: ✭ 296 (-46.38%)
Mutual labels:  memcached
Memtier benchmark
NoSQL Redis and Memcache traffic generation and benchmarking tool.
Stars: ✭ 480 (-13.04%)
Mutual labels:  memcached
Gnomock
Test your code without writing mocks with ephemeral Docker containers 📦 Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code 💻
Stars: ✭ 398 (-27.9%)
Mutual labels:  memcached
Senparc.co2net
支持 .NET Framework & .NET Core 的公共基础扩展库
Stars: ✭ 289 (-47.64%)
Mutual labels:  memcached
Zhong
Reliable, distributed cron.
Stars: ✭ 281 (-49.09%)
Mutual labels:  memcached
Scrapbook
PHP cache library, with adapters for e.g. Memcached, Redis, Couchbase, APC(u), SQL and additional capabilities (e.g. transactions, stampede protection) built on top.
Stars: ✭ 279 (-49.46%)
Mutual labels:  memcached

pymemcache

.. image:: https://img.shields.io/pypi/v/pymemcache.svg :target: https://pypi.python.org/pypi/pymemcache

.. image:: https://readthedocs.org/projects/pymemcache/badge/?version=master :target: https://pymemcache.readthedocs.io/en/latest/ :alt: 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:

.. code-block:: bash

pip install pymemcache

For development, clone from github and run the tests:

.. code-block:: bash

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

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

.. code-block:: bash

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 <https://github.com/django-pymemcache/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

  • Charles Gordon <http://github.com/cgordon>_
  • Dave Dash <http://github.com/davedash>_
  • Dan Crosta <http://github.com/dcrosta>_
  • Julian Berman <http://github.com/Julian>_
  • Mark Shirley <http://github.com/maspwr>_
  • Tim Bart <http://github.com/pims>_
  • Thomas Orozco <http://github.com/krallin>_
  • Marc Abramowitz <http://github.com/msabramo>_
  • Marc-Andre Courtois <http://github.com/mcourtois>_
  • Julien Danjou <http://github.com/jd>_
  • INADA Naoki <http://github.com/methane>_
  • James Socol <http://github.com/jsocol>_
  • Joshua Harlow <http://github.com/harlowja>_
  • John Anderson <http://github.com/sontek>_
  • Adam Chainz <http://github.com/adamchainz>_
  • Ernest W. Durbin III <https://github.com/ewdurbin>_
  • Remco van Oosterhout <https://github.com/Vhab>_
  • Nicholas Charriere <https://github.com/nichochar>_
  • Joe Gordon <https://github.com/jogo>_
  • Jon Parise <https://github.com/jparise>_
  • Stephen Rosen <https://github.com/sirosen>_
  • Feras Alazzeh <https://github.com/FerasAlazzeh>_
  • Moisés Guimarães de Medeiros <https://github.com/moisesguimaraes>_
  • Nick Pope <https://github.com/pope1ni>_

We're Hiring!

Are you really excited about open-source? Or great software engineering? Pinterest is hiring <https://careers.pinterest.com/>_!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].