|
|
|
@ -10,7 +10,126 @@ Contents: |
|
|
|
exceptions |
|
|
|
pools |
|
|
|
|
|
|
|
A Memcached like interface to the Riak HTTP API. |
|
|
|
|Build Status| |Coverage Status| |PyPI version| |
|
|
|
|
|
|
|
A Memcached like interface to the Riak HTTP Client. `Read The |
|
|
|
Docs <http://riakcached.readthedocs.org/en/latest/>`__ |
|
|
|
|
|
|
|
Installing |
|
|
|
---------- |
|
|
|
|
|
|
|
From PyPI |
|
|
|
~~~~~~~~~ |
|
|
|
|
|
|
|
.. code:: bash |
|
|
|
|
|
|
|
pip install riakcached |
|
|
|
|
|
|
|
From Git |
|
|
|
~~~~~~~~ |
|
|
|
|
|
|
|
.. code:: bash |
|
|
|
|
|
|
|
git clone git://github.com/brettlangdon/riakcached.git |
|
|
|
cd ./riakcached |
|
|
|
pip install -r requirements.txt |
|
|
|
python setup.py install |
|
|
|
|
|
|
|
Usage |
|
|
|
----- |
|
|
|
|
|
|
|
Basic Usage |
|
|
|
~~~~~~~~~~~ |
|
|
|
|
|
|
|
.. code:: python |
|
|
|
|
|
|
|
from riakcached.clients import RiakClient |
|
|
|
|
|
|
|
client = RiakClient("my_bucket") |
|
|
|
|
|
|
|
client.set("hello", "world") |
|
|
|
print client.get("hello") |
|
|
|
# 'hello' |
|
|
|
|
|
|
|
client.delete("hello") |
|
|
|
print client.get("hello") |
|
|
|
# None |
|
|
|
|
|
|
|
values = { |
|
|
|
"hello": "world", |
|
|
|
"foo": "bar", |
|
|
|
} |
|
|
|
client.set_many(values) |
|
|
|
|
|
|
|
keys = ["hello", "foo", "test"] |
|
|
|
print client.get_many(keys) |
|
|
|
# {'foo': 'bar', 'hello': 'world'} |
|
|
|
|
|
|
|
client.close() |
|
|
|
|
|
|
|
Connection Pool Settings |
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
|
|
.. code:: bash |
|
|
|
|
|
|
|
from riakcached.clients import RiakClient |
|
|
|
from riakcached.pools import Urllib3Pool |
|
|
|
|
|
|
|
pool = Urllib3Pool(base_url="http://my-host.com:8098/", timeout=1) |
|
|
|
client = RiakClient("my_bucket", pool=pool) |
|
|
|
|
|
|
|
client.get("foo") |
|
|
|
|
|
|
|
Custom Connection Pool |
|
|
|
~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
|
|
.. code:: bash |
|
|
|
|
|
|
|
from riakcached.clients import RiakClient |
|
|
|
from riakcache.pools import Pool |
|
|
|
|
|
|
|
class CustomPool(Pool): |
|
|
|
__slots__ = ["connection"] |
|
|
|
|
|
|
|
def connect(self): |
|
|
|
self.connection = make_a_connection() |
|
|
|
|
|
|
|
def close(self): |
|
|
|
if self.connection: |
|
|
|
close_connection(self.connection) |
|
|
|
|
|
|
|
def request(self, method, url, body=None, headers=None): |
|
|
|
results = make_request(self.connection, method, url, body, headers, timeout=self.timeout) |
|
|
|
return results.status, results.data, results.headers |
|
|
|
|
|
|
|
|
|
|
|
custom_pool = CustomPool(base_url="http://my-host.com:8098", timeout=1) |
|
|
|
client = RiakClient("my_bucket", pool=pool) |
|
|
|
|
|
|
|
Threaded Client |
|
|
|
~~~~~~~~~~~~~~~ |
|
|
|
|
|
|
|
The exists a :class:`riakcached.clients.ThreadedRiakClient` which inherits |
|
|
|
from :class:`riakcached.clients.RiakClient` and which uses threading to try |
|
|
|
to parallelize calls to ``get_many``, ``set_many`` and ``delete_many``. |
|
|
|
|
|
|
|
Documentation |
|
|
|
------------- |
|
|
|
|
|
|
|
The documentation can be found in the ``/docs`` directory in this |
|
|
|
repository and should be fairly complete for the codebase. |
|
|
|
|
|
|
|
Building Documentation |
|
|
|
~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
|
|
.. code:: bash |
|
|
|
|
|
|
|
git clone git://github.com/brettlangdon/riakcached.git |
|
|
|
cd riakcached |
|
|
|
pip install -r docs-requirements.txt |
|
|
|
cd ./docs |
|
|
|
make html |
|
|
|
|
|
|
|
|
|
|
|
Indices and tables |
|
|
|
================== |
|
|
|
@ -18,3 +137,10 @@ Indices and tables |
|
|
|
* :ref:`genindex` |
|
|
|
* :ref:`modindex` |
|
|
|
* :ref:`search` |
|
|
|
|
|
|
|
.. |Build Status| image:: https://travis-ci.org/brettlangdon/riakcached.png?branch=master |
|
|
|
:target: https://travis-ci.org/brettlangdon/riakcached |
|
|
|
.. |Coverage Status| image:: https://coveralls.io/repos/brettlangdon/riakcached/badge.png?branch=master |
|
|
|
:target: https://coveralls.io/r/brettlangdon/riakcached?branch=master |
|
|
|
.. |PyPI version| image:: https://badge.fury.io/py/riakcached.png |
|
|
|
:target: http://badge.fury.io/py/riakcached |