An redis python datastructures package.
Project description
redis-cooker
An redis python datastructures package
Installation
To install redis-cooker, simply:
$ pip install redis-cooker
or from source:
$ python setup.py install
Getting Started
>>> from redis_cooker.clients import set_connection_url
>>> from redis_cooker.collections import RedisList
>>>
>>> set_connection_url('redis://:@127.0.0.1:6379/15')
>>> for i in RedisList("Testing:RedisList", init=['Hello', 'World']):
>>> print(i)
Hello
World
By default, all data will use the built-in json serializer.
Attention!
- If the key has existed in Redis, new object will connect to the existed key and ignore the "init" value.
- For complex operations, redis-cooker uses lua instead of python.
Datastructures
redis-cooker provide 8 datastructures in current version:
- collections: RedisMutableSet, RedisString, RedisList, RedisDict, RedisDeque, RedisDefaultDict
- queues: RedisQueue, RedisLifoQueue
Integration with Pydantic
>>> from typing import List
>>>
>>> from pydantic import BaseModel
>>> from redis_cooker.clients import set_connection_url
>>> from redis_cooker.collections import RedisList
>>>
>>> set_connection_url('redis://:@127.0.0.1:6379/15')
>>>
>>>
>>> class Person(BaseModel):
name: str
age: int
>>>
>>>
>>> data = [{"name": "A", "age": 15},{"name": "B", "age": "16"}]
>>> for i in RedisList("Testing:Pydantic", init=data, schema=Person):
>>> print(i)
{'name': 'A', 'age': 15}
{'name': 'B', 'age': '16'}
Integration with DRF Serializer
>>> from typing import List
>>>
>>> from rest_framework import serializers
>>> from redis_cooker.clients import set_connection_url
>>> from redis_cooker.collections import RedisList
>>>
>>> set_connection_url('redis://:@127.0.0.1:6379/15')
>>>
>>>
>>> class DRFPerson(serializers.Serializer):
name = serializers.CharField()
age = serializers.IntegerField()
>>>
>>>
>>> data = [{"name": "A", "age": 15},{"name": "B", "age": "16"}]
>>> for i in RedisList("Testing:DRF", init=data, schema=DRFPerson):
>>> print(i)
OrderedDict([('name', 'A'), ('age', 15)])
OrderedDict([('name', 'B'), ('age', 16)])
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
redis-cooker-2020.11.3.tar.gz
(9.8 kB
view hashes)
Built Distribution
Close
Hashes for redis_cooker-2020.11.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94a82c019ba9cd4d15431f33c0f376b02351b3b3e2580501ce5e506a3e9de76f |
|
MD5 | f17fcd1b9db4816bd46f853b6fcd522e |
|
BLAKE2b-256 | 2b4e732fa4b60f7cb9f32ff63082b3f047ebf6240da1cc070a9c7fb3cda02af4 |