skillfed

pottery

Redis for Humans.

pottery v3.0.1 557.2K downloads/30d#6,012 on PyPI1,246
License unclear Active released

What it is and what it does

Pottery wraps Redis with Python standard-library collection interfaces—RedisDict, RedisSet, RedisList, RedisDeque, RedisCounter, RedisSimpleQueue—so you can treat Redis as if it were a local Python dict or set. Instead of learning Redis commands, you use the same syntax you already know from Python's built-in collections. The package is designed for scenarios where you need persistent, shared storage across machines or processes, or where you want your data to survive application restarts.

Under the hood, Pottery serializes your data to JSON and stores it in Redis, handling the translation between Python objects and Redis operations. It supports async patterns via AIORedlock and includes utilities like Bloom filters, HyperLogLogs, and distributed locking. The package has been battle-tested in production at scale and is actively maintained, supporting Python 3.9 through 3.13.

Use it for:

  • Implement a distributed cache or session store shared across multiple application instances or microservices.
  • Build a multi-producer, multi-consumer work queue that persists across application crashes using RedisSimpleQueue.
  • Use RedisDict or RedisSet as a persistent, shared data structure for configuration or feature flags.
  • Implement distributed locking or synchronization patterns with Redlock for coordinating work across processes.
  • Count occurrences or track metrics across a distributed system using RedisCounter.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Pottery provides Python dict, set, list, deque, queue, and counter interfaces backed by Redis, letting you use familiar Python collection syntax to read and write data persisted in Redis.

Yes, if you need a straightforward way to use Redis as a persistent, shared data store and prefer Python collection syntax over raw Redis commands. The low install friction, active maintenance, and lack of known vulnerabilities make it a safe choice. The main caveat is that all values must be JSON-serializable, and index-based access on RedisList is slow; for those constraints, it's a solid fit for caching, queues, and distributed state.

Install

pottery on PyPI

pip

pip install pottery

uv

uv add pottery

poetry

poetry add pottery

Installing pottery

Before you install

Low install friction with only 3 runtime dependencies (redis, mmh3, typing_extensions). Actively maintained with a recent release on 2025-03-21 and ongoing commits; the repository is not archived and has 1246 stars.

Quickstart

from redis import Redis
from pottery import RedisDict

redis = Redis.from_url('redis://localhost:6379/1')
tel = RedisDict({'jack': 4098}, redis=redis, key='tel')
tel['guido'] = 4127
print(tel['jack'])

Requires a running Redis server accessible at the connection URL; all keys and values must be JSON serializable.

Verify before relying

  • Whether the package is suitable for high-throughput or latency-sensitive workloads given Redis round-trip overhead
  • Performance characteristics of index-based access on RedisList (described as O(n) in the excerpt)
  • Whether all advertised features (Redlock, AIORedlock, NextID, redis_cache, CachedOrderedDict, Bloom filters, HyperLogLogs, ContextTimer) are production-ready

Package facts

License not declared (unclear)
Python support supports the current Python release (<4,>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 3 — redis, mmh3, typing_extensions
Maintenance actively maintained — 511 days since the last release
Last repo commit
First released
Downloads 557,205/month — #6,012 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pottery-3.0.1-py3-none-any.whl

Keywords: Redis, client, persistent, storage

Development Status :: 4 - BetaFramework :: AsyncIOIntended Audience :: DevelopersProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Database :: Front-EndsTopic :: System :: Distributed ComputingTopic :: UtilitiesTyping :: Typed

Tags

redis python dict interfaceredis-backed collectionspythonic redis clientredis persistent storageredis data structuresredis queue implementationredis cache abstraction
redis-abstractiondistributed-storagemicroservices

More Utilities packages