-
Notifications
You must be signed in to change notification settings - Fork 177
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Nicholas Charriere
committed
Aug 3, 2016
1 parent
5caae00
commit f84dcf4
Showing
6 changed files
with
189 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
pymemcache | ||
========== | ||
|
||
.. toctree:: | ||
:maxdepth: 4 | ||
|
||
pymemcache |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
pymemcache.client package | ||
========================= | ||
|
||
Submodules | ||
---------- | ||
|
||
pymemcache.client.base module | ||
----------------------------- | ||
|
||
.. automodule:: pymemcache.client.base | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
pymemcache.client.hash module | ||
----------------------------- | ||
|
||
.. automodule:: pymemcache.client.hash | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
pymemcache.client.murmur3 module | ||
-------------------------------- | ||
|
||
.. automodule:: pymemcache.client.murmur3 | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
pymemcache.client.rendezvous module | ||
----------------------------------- | ||
|
||
.. automodule:: pymemcache.client.rendezvous | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
|
||
Module contents | ||
--------------- | ||
|
||
.. automodule:: pymemcache.client | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
pymemcache package | ||
================== | ||
|
||
Subpackages | ||
----------- | ||
|
||
.. toctree:: | ||
|
||
pymemcache.client | ||
pymemcache.test | ||
|
||
Submodules | ||
---------- | ||
|
||
pymemcache.exceptions module | ||
---------------------------- | ||
|
||
.. automodule:: pymemcache.exceptions | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
pymemcache.fallback module | ||
-------------------------- | ||
|
||
.. automodule:: pymemcache.fallback | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
pymemcache.pool module | ||
---------------------- | ||
|
||
.. automodule:: pymemcache.pool | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
pymemcache.serde module | ||
----------------------- | ||
|
||
.. automodule:: pymemcache.serde | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
|
||
Module contents | ||
--------------- | ||
|
||
.. automodule:: pymemcache | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
Getting started! | ||
================ | ||
A comprehensive, fast, pure-Python memcached client library. | ||
|
||
Basic Usage | ||
------------ | ||
|
||
.. code-block:: python | ||
from pymemcache.client.base import Client | ||
client = Client(('localhost', 11211)) | ||
client.set('some_key', 'some_value') | ||
result = client.get('some_key') | ||
Using a memcached cluster | ||
------------------------- | ||
This will use a consistent hashing algorithm to choose which server to | ||
set/get the values from. It will also automatically rebalance depending | ||
on if a server goes down. | ||
|
||
.. code-block:: python | ||
from pymemcache.client.hash import HashClient | ||
client = HashClient([ | ||
('127.0.0.1', 11211), | ||
('127.0.0.1', 11212) | ||
]) | ||
client.set('some_key', 'some value') | ||
result = client.get('some_key') | ||
Serialization | ||
-------------- | ||
|
||
.. code-block:: python | ||
import json | ||
from pymemcache.client.base import Client | ||
def json_serializer(key, value): | ||
if type(value) == str: | ||
return value, 1 | ||
return json.dumps(value), 2 | ||
def json_deserializer(key, value, flags): | ||
if flags == 1: | ||
return value | ||
if flags == 2: | ||
return json.loads(value) | ||
raise Exception("Unknown serialization format") | ||
client = Client(('localhost', 11211), serializer=json_serializer, | ||
deserializer=json_deserializer) | ||
client.set('key', {'a':'b', 'c':'d'}) | ||
result = client.get('key') | ||
Best Practices | ||
--------------- | ||
|
||
- Always set the connect_timeout and timeout arguments in the constructor to | ||
avoid blocking your process when memcached is slow. | ||
- Use the "noreply" flag for a significant performance boost. The "noreply" | ||
flag is enabled by default for "set", "add", "replace", "append", "prepend", | ||
and "delete". It is disabled by default for "cas", "incr" and "decr". It | ||
obviously doesn't apply to any get calls. | ||
- Use get_many and gets_many whenever possible, as they result in less | ||
round trip times for fetching multiple keys. | ||
- Use the "ignore_exc" flag to treat memcache/network errors as cache misses | ||
on calls to the get* methods. This prevents failures in memcache, or network | ||
errors, from killing your web requests. Do not use this flag if you need to | ||
know about errors from memcache, and make sure you have some other way to | ||
detect memcache server failures. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters