Skip to main content

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()
```


Project details


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.5.1.tar.gz (5.1 kB view hashes)

Uploaded Source

Built Distribution

redisobjects-0.5.1-py3-none-any.whl (9.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page