Garrison is a RocksDB wrapped in a gRPC service to expose some high level functionalities. Garrison is also implments queue functionalities on the top of RocksDB KV store functionalities.
In order to pip install rocksdb you will need to install the following distro packages
- Ubuntu 18.04
sudo apt install librocksdb-dev libsnappy-dev liblz4-dev
pip3 install garrison-server
python3 -m garrison.server --database-path=/data/garrison_db --port=10000
import garrison.client
client = garrison.client.GarrisonClient(
host='127.0.0.1',
port=10000,
)
# Sets a key inside the database - return whether the key is new or existed
client.key_set(
key=b'key_name',
value=b'value',
)
# Retrieving a key - return None if key does not exist
value = client.key_get(
key=b'key_name',
)
# Deletes a key inside the database - return whether the key is deleted or wasn't existed
deleted_successfuly = client.key_delete(
key=b'key_name',
)
# Push items into a queue.
# Priority is either NORMAL or HIGH, and controls whether the items will be pushed on the top or buttom of the queue
client.queue_push(
queue_name=b'queue_name',
items=[
b'item one',
b'item two',
b'item three',
],
priority='NORMAL',
)
# Get the number of items in the queue
number_of_items = client.queue_length(
queue_name=b'queue_name',
)
# Pulling items from the queue - return list of items. HIGH priority first.
items = client.queue_pop(
queue_name=b'queue_name',
number_of_items=3,
)
# Deletes a key inside the database - return whether the key is deleted or wasn't existed
deleted_successfuly = client.queue_delete(
queue_name=b'queue_name',
)
Distributed under the MIT License. See LICENSE
for more information.
Gal Ben David - [email protected]
Project Link: https://github.com/intsights/garrison