Skip to content

A python KV Store (like Redis, but without the network)

Notifications You must be signed in to change notification settings

Reecepbcups/py_kvstore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python KVStore

pypi py-kvstore


A simple Key-Value store (similar to redis) built in python.

Sets can expire, not expire, and be saved with any arbitrary data. So you can set it as a JSON string, a dict, int, or any other value. It is up to the developer to implement and parse types correctly.


Projects Using


Notable Features

# create a new KVStore
kv1 = KVStore(name="transactions", dump_dir="/home/reece/kvstores")

# Set a key. Defaults to -1 timeout (no timeout)
kv1.set("tx;UUID-HERE", "{"data":{"time":"...","amount":"...","currency":"..."}}")

# Get the key, returns None if not found (ex: expired or never set)
res = kv1.get("tx;UUID-HERE")

# Set this key to expire in 100 seconds
kv1.set("other;expire_later", "some string here", 100)

# Store data in multiple sub keys (hashset).
# You can only set a timeout on the parent key for now IF its a new set. Else use .hset_expire(...)
kv1.hset("parent_key", "subkey1", "value", 10)
kv1.hset("parent_key", "subkey2", "value2")

kv1.hget("parent_key", "subkey1") # returns "value"

# Set values and increment a counter
kv1.set("counter", 0)
kv1.incr("counter") # returns 1
kv1.incr("counter", amount=4) # returns 5

# Keys
kv1.get_keys() # returns all non expired keys
kv1.get_keys("tx;*") # returns keys matching the regex

# Save current memory state to disk (the dump_dir set on initialize.)
kv1.dump()

# clear the store
kv1.clear()

# Load the previous dump from file
kv1.load()

About

A python KV Store (like Redis, but without the network)

Resources

Stars

Watchers

Forks

Releases

No releases published