Redis-backed Python data structures that function like built-ins but store data on a Redis server.
- Facilitates shared access across distributed systems
- Avoids the transfer of large pickle objects and pickling/unpickling overhead
- Drop-in Replacements: Use familiar Python data structures (
list,dict,set, etc.) with minimal changes to your code. - Redis-Powered: Data is stored on the Redis server, enabling easy sharing across processes, services, or systems.
- Seamless Integration: Works like native Python data structures while leveraging Redis for distributed use cases.
Install the library using pip:
pip install py_redis_dsHere’s a quick example of how to use a Redis-backed list:
from py_redis_ds.builtins import List
from redis import Redis
redis = Redis()
# Initialize a Redis-backed list
rlist = List(name="my_shared_list", redis=redis)
# Add elements
rlist.append("Hello")
rlist.append("World")
# Access elements
print(rlist[0]) # Output: Hello
# Iterate through the list
for item in rlist:
print(item)
# Shared access in another script or service
rlist2 = List(name="my_shared_list", redis=redis)
print(rlist2[1]) # Output: World| Data Structure | Redis-Backed Equivalent |
|---|---|
list |
py_redis_ds.builtins.List |
dict |
py_redis_ds.builtins.Dict |
set |
py_redis_ds.builtins.Set |
queue.Queue |
py_redis_ds.queue.Queue |
queue.LifoQueue |
py_redis_ds.queue.LifoQueue |
queue.PriorityQueue |
py_redis_ds.queue.PriorityQueue |
collections.deque |
py_redis_ds.collections.Deque |
collections.defaultdict |
py_redis_ds.collections.DefaultDict |
(Support for more data structures coming soon!)
- Shared State: Easily share data between processes, microservices, or distributed systems.
- Scalability: Offload data storage to Redis, reducing memory usage in individual processes.
- Simplicity: Use familiar Python syntax while leveraging Redis's power.
Contributions are welcome! Please check out our CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License. See the LICENSE file for details.
We’re excited to see how you use Redis-Backed Data Structures! If you have any questions or feedback, feel free to open an issue or start a discussion.