🧠 Redis Model Store
Store, version, and manage your ML models in Redis with ease. redis-model-store provides a simple yet powerful interface for handling machine learning model artifacts in Redis.
✨ Features
- 🔄 Automatic Versioning: Track and manage multiple versions of your models
- 📦 Smart Storage: Large models are automatically sharded for optimal storage
- 🔌 Pluggable Serialization: Works with any Python object (NumPy, PyTorch, TensorFlow, etc.)
- 🏃♂️ High Performance: Efficient storage and retrieval using Redis pipelining
- 🛡️ Safe Operations: Atomic operations with automatic cleanup on failures
🚀 Quick Start
Installation
# Using pip
pip install redis-model-store
# Or using poetry
poetry add redis-model-store
Basic Usage
Here's a simple example using scikit-learn:
from redis import Redis
from redis_model_store import ModelStore
from sklearn.ensemble import RandomForestClassifier
# Connect to Redis and initialize store
redis = Redis(host="localhost", port=6379)
store = ModelStore(redis)
# Train your model
model = RandomForestClassifier()
model.fit(X_train, y_train)
# Save model with version tracking
version = store.save_model(
model,
name="my-classifier",
description="Random forest trained on dataset v1"
)
# List available models
models = store.list_models()
print(f"Available models: {models}")
# Load latest version
model = store.load_model("my-classifier")
# Load specific version
model = store.load_model("my-classifier", version=version)
# View all versions
versions = store.get_all_versions("my-classifier")
for v in versions:
print(f"Version: {v.version}, Created: {v.created_at}")
🛠️ Contributing
We welcome contributions! Here's how to get started:
Development Setup
- Clone the repository:
git clone https://github.com/redis-applied-ai/redis-model-store.git
cd redis-model-store
- Install poetry if you haven't:
curl -sSL https://install.python-poetry.org | python3 -
- Install dependencies:
poetry install --all-extras
Linting and Tests
poetry run format
poetry run check-mypy
poetry run test
poetry run test-verbose
Making Changes
- Create a new branch:
git checkout -b feat/your-feature-name
-
Make your changes and ensure:
- All tests pass (covering new functionality)
- Code is formatted
- Type hints are valid
- Examples/docs added as notebooks to the
docs/directory.
-
Push changes and open a PR
📚 Documentation
For more usage examples check out tbhis Example Notebook.
Metadata
Release files for redis-model-store 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| redis_model_store-0.0.2.tar.gz | 10.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| redis_model_store-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.8 kB
Release files / redis_model_store-0.0.2.tar.gz
| Download URL | redis_model_store-0.0.2.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8220b6400da77bf2529be54081d9fa541c49fe277960f17826e5f42ade46bf5
|
|
BLAKE2b-256 checksum How to use checksums |
1495f79e401bbe5de3bed1ef35807e9c7a621fe2f198bc7c564a1cd293623a5e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.11.12 Linux/6.11.0-1012-azure
|
Release files / redis_model_store-0.0.2-py3-none-any.whl
| Download URL | redis_model_store-0.0.2-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f70873367966d289a73a4ea92a72941e2f3f96e813717a59baad8f37e959e60
|
|
BLAKE2b-256 checksum How to use checksums |
5b9e1dd4f808bf58e9c858c15ff37ec08c4765df88d1194bcbad2c81ce33b7a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.3 CPython/3.11.12 Linux/6.11.0-1012-azure
|