--- id: pottery version: "3.0.1" license: unclear license_treatment: unclear maintenance: active --- # pottery — Redis for Humans. License: unclear · Maintenance: active · Downloads: 557.2K/mo ## 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 above — 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 pip install pottery uv add pottery 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_current - Install friction: low - Maintenance: active - Downloads: 557.2K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags redis python dict interface, redis-backed collections, pythonic redis client, redis persistent storage, redis data structures, redis queue implementation, redis cache abstraction, redis-abstraction, distributed-storage, microservices [View on SkillFed](https://skillfed.io/packages/pottery) · [View on PyPI](https://pypi.org/project/pottery/)