Python client for gibson cache server
Project description
- Version:
- 0.2.1
pygibson
Python client for gibson cache server.
Which python versions are supported?
Currently testsuite runs with python 2.6, 2.7, 3.2 and 3.3.
All tests are passing successfully with PyPy 2.0.2 but since pygibson is implemented as CPython extension it’s not recommended to use it with PyPy. We need to find some workaround to this later.
How to install?
pip install pygibson
or
git clone https://github.com/bak1an/pygibson.git cd pygibson git submodule update --init python setup.py install
How to use?
from pygibson import Client
from pygibson import NotFoundError
cl = Client() # defaults, 127.0.0.1:10128, timeout=1000
cl2 = Client(host="192.168.1.33", port=4321, timeout=1500) # non defaults
cl3 = Client(unix_socket="/var/run/gibson.sock", timeout=500) # connects to unix socket with timeout set to 500
cl.set("some_key", "some_value")
print cl.get("some_key") # "some_value" will be printed
try:
cl.get("no_such_key")
except NotFoundError:
print "Yay, no such key!"
Client() class methods
Method name |
Parameters |
Description |
---|---|---|
__init__ |
host=”127.0.0.1”, port=10128, unix_socket=None, timeout=1000 |
If unix_socket is None connects to host:port, otherwise connects to given unix_socket. timeout parameter can be used to set timeout for IO operations. Default is 1000ms. |
key, value, ttl=0 |
Required parameters are key and value. Optional parameter ttl can be used to set entry TTL in seconds. Default is 0, which means infinite TTL. |
|
prefix, value |
Set value for all keys which are starting with prefix. This method will raise NotFoundError if there are no keys starting with prefix at server. |
|
key, ttl |
Set TTL in seconds for key. |
|
prefix, ttl |
Set TTL in seconds for all keys string with prefix. |
|
key |
Get value for given key. |
|
prefix |
Get values for keys starting with prefix. |
|
key |
Delete given key from server. Renamed to dl to avoid clashes with python’s keyword. |
|
prefix |
Delete keys starting with prefix from server. |
|
key |
Increment key by 1. |
|
prefix |
Increment keys starting with prefix by 1. |
|
key |
Decrement key by 1. |
|
prefix |
Decrement keys starting with prefix by 1. |
|
key, time |
Lock key for time seconds. Any write operations to that key will fail and LockedError will be raised. |
|
key |
Unlock key. |
|
prefix, time |
Lock keys starting with prefix for time seconds. |
|
prefix |
Unlock keys starting with prefix. |
|
prefix |
Get count of keys starting with prefix. |
|
key, field |
Get useful info about key. Allowed values for field are: ‘size’, ‘encoding’ ‘access’, ‘created’, ‘ttl’, ‘left’, ‘lock’. Click method’s name in first column for details ;) |
|
prefix |
Get list of keys starting with prefix. |
|
Get useful statistics from server. See gibson protocol docs for details. |
||
Ping server. Raise PyGibsonError if failed. |
||
Disconnect. |
- NOTE:
values packed in bytes are returned from get, mget and keys under python 3.
Exceptions
Here is a list of exceptions which are available in pygibson module:
Exception |
Description |
---|---|
PyGibsonError |
Generic error. raised when REPL_ERR received from server or any other error occurred (connection refused, timeout, etc). All other pygibson exceptions are subclassed from this one |
NotFoundError |
Not found error. Raised when REPL_ERR_NOT_FOUND received from server |
NaNError |
Not a number. Raised from inc, minc, dec and mdec when incrementing/decrementing not a numerical values |
NoMemoryError |
Raised when server has no free memory for your stuff |
LockedError |
Raised when values that you are trying to modify are locked |
Roadmap
Connection pool
Ability to connect multiple servers
Better pypy support
License
pygibson code is distributed under MIT license conditions, see LICENSE for details.
pygibson distribution includes bundled copy of libgibsonclient library which is written by Simone Margaritelli and distributed on terms of BSD license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pygibson-0.2.1.tar.gz
.
File metadata
- Download URL: pygibson-0.2.1.tar.gz
- Upload date:
- Size: 19.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74991becfabd5702435bb0a540377df33580eaf90dbeb6ef21e64da0c4d1266f |
|
MD5 | 58a492c28c208702de585d32d43c1aa8 |
|
BLAKE2b-256 | 49ce18e324897ae11b3a9f271e3780fe5ffa169ac980a47eb9c14077f586ebda |