Object-oriented wrapper for aioredis.
Project description
Redisobjects
============
Simple wrapper for [aioredis](https://github.com/aio-libs/aioredis) to provide asynchronous functionality with a clean object-oriented interface for Redis in Python 3.6+.
Installation
------------
```shell
pip install redisobjects
```
Examples
--------
Example showing how to use atoms (defined as single key-value pairs):
```python
import redisobjects
import asyncio
async def main(loop):
redis = await redisobjects.connect('redis://localhost', loop=loop)
atom = redis.atom('example.atom')
print(await atom.get())
await atom.set('bla')
print(await atom.get())
await atom.remove()
print(await atom.get())
redis.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()
```
Example that shows how to use a list:
```python
import redisobjects
import asyncio
async def main(loop):
redis = await redisobjects.connect('redis://localhost', loop=loop)
example_list = redis.list('example.list')
print(await example_list.list())
await example_list.push_right('b')
await example_list.push_right('c')
print(await example_list.list())
await example_list.push_left('a')
print(await example_list.list())
await example_list.pop_left()
await example_list.pop_left()
print(await example_list.list())
await example_list.pop_left()
print(await example_list.list())
redis.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()
```
Example that shows how to use a dict/map:
```python
import redisobjects
import asyncio
async def main(loop):
redis = await redisobjects.connect('redis://localhost', loop=loop)
d = redis.dict('example.dict')
print(dict(await d.items()))
await d.set('a', '1')
print(dict(await d.items()))
await d.set('b', '2')
print(dict(await d.items()))
await d.set('c', '3')
print(dict(await d.items()))
await d.remove('a', 'b')
print(dict(await d.items()))
await d.remove('c')
print(dict(await d.items()))
redis.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()
```
Example that shows how to use transactions:
```python
import redisobjects
import asyncio
async def main(loop):
redis = await redisobjects.connect('redis://localhost', loop=loop)
list = redis.list('example.list')
atom = redis.atom('example.atom')
tx = redis.create_transaction()
await list.push_right('a', 'b', tx=tx)
await atom.set('a', tx=tx)
print(await list.list())
print(await atom.get())
await tx.commit()
print(await list.list())
print(await atom.get())
# Clean up
await list.remove('a')
await list.remove('b')
await atom.remove()
redis.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()
```
============
Simple wrapper for [aioredis](https://github.com/aio-libs/aioredis) to provide asynchronous functionality with a clean object-oriented interface for Redis in Python 3.6+.
Installation
------------
```shell
pip install redisobjects
```
Examples
--------
Example showing how to use atoms (defined as single key-value pairs):
```python
import redisobjects
import asyncio
async def main(loop):
redis = await redisobjects.connect('redis://localhost', loop=loop)
atom = redis.atom('example.atom')
print(await atom.get())
await atom.set('bla')
print(await atom.get())
await atom.remove()
print(await atom.get())
redis.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()
```
Example that shows how to use a list:
```python
import redisobjects
import asyncio
async def main(loop):
redis = await redisobjects.connect('redis://localhost', loop=loop)
example_list = redis.list('example.list')
print(await example_list.list())
await example_list.push_right('b')
await example_list.push_right('c')
print(await example_list.list())
await example_list.push_left('a')
print(await example_list.list())
await example_list.pop_left()
await example_list.pop_left()
print(await example_list.list())
await example_list.pop_left()
print(await example_list.list())
redis.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()
```
Example that shows how to use a dict/map:
```python
import redisobjects
import asyncio
async def main(loop):
redis = await redisobjects.connect('redis://localhost', loop=loop)
d = redis.dict('example.dict')
print(dict(await d.items()))
await d.set('a', '1')
print(dict(await d.items()))
await d.set('b', '2')
print(dict(await d.items()))
await d.set('c', '3')
print(dict(await d.items()))
await d.remove('a', 'b')
print(dict(await d.items()))
await d.remove('c')
print(dict(await d.items()))
redis.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()
```
Example that shows how to use transactions:
```python
import redisobjects
import asyncio
async def main(loop):
redis = await redisobjects.connect('redis://localhost', loop=loop)
list = redis.list('example.list')
atom = redis.atom('example.atom')
tx = redis.create_transaction()
await list.push_right('a', 'b', tx=tx)
await atom.set('a', tx=tx)
print(await list.list())
print(await atom.get())
await tx.commit()
print(await list.list())
print(await atom.get())
# Clean up
await list.remove('a')
await list.remove('b')
await atom.remove()
redis.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
loop.close()
```
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
redisobjects-0.6.2.tar.gz
(7.5 kB
view hashes)
Built Distribution
Close
Hashes for redisobjects-0.6.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6cf8f6f2c07a129dc98711a1c02455d9c5c17adacc21d4a894c3bb7cc746134 |
|
MD5 | 31e64e0e3864ec688d1d09ef31af4773 |
|
BLAKE2b-256 | 00de88b3a495f48cc8aeff168a37978af11f598d8e78d8019e2c99f0ce7b4f74 |