Examples of aioredis usage¶
Below is a list of examples from aioredis/examples (see for more).
Every example is a correct python program that can be executed.
Python 3.5 examples¶
Low-level connection usage example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
async def go():
conn = await aioredis.create_connection(
('localhost', 6379), encoding='utf-8')
ok = await conn.execute('set', 'my-key', 'some value')
assert ok == 'OK', ok
str_value = await conn.execute('get', 'my-key')
raw_value = await conn.execute('get', 'my-key', encoding=None)
assert str_value == 'some value'
assert raw_value == b'some value'
print('str value:', str_value)
print('raw value:', raw_value)
# optionally close connection
conn.close()
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Connections pool example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
async def go():
pool = await aioredis.create_pool(
('localhost', 6379),
minsize=5, maxsize=10)
with await pool as redis: # high-level redis API instance
await redis.set('my-key', 'value')
val = await redis.get('my-key')
print('raw value:', val)
pool.close()
await pool.wait_closed() # closing all open connections
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Commands example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
async def go():
redis = await aioredis.create_redis(
('localhost', 6379))
await redis.set('my-key', 'value')
val = await redis.get('my-key')
print(val)
# gracefully closing underlying connection
redis.close()
await redis.wait_closed()
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Transaction example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
async def go():
redis = await aioredis.create_redis(
('localhost', 6379))
await redis.delete('foo', 'bar')
tr = redis.multi_exec()
fut1 = tr.incr('foo')
fut2 = tr.incr('bar')
res = await tr.execute()
res2 = await asyncio.gather(fut1, fut2)
print(res)
assert res == res2
redis.close()
await redis.wait_closed()
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Pub/Sub example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
async def reader(ch):
while (await ch.wait_message()):
msg = await ch.get_json()
print("Got Message:", msg)
async def go():
pub = await aioredis.create_redis(
('localhost', 6379))
sub = await aioredis.create_redis(
('localhost', 6379))
res = await sub.subscribe('chan:1')
ch1 = res[0]
tsk = asyncio.ensure_future(reader(ch1))
res = await pub.publish_json('chan:1', ["Hello", "world"])
assert res == 1
await sub.unsubscribe('chan:1')
await tsk
sub.close()
pub.close()
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Scan command example¶
import asyncio
import aioredis
def main():
"""Scan command example."""
loop = asyncio.get_event_loop()
async def go():
redis = await aioredis.create_redis(
('localhost', 6379))
await redis.mset('key:1', 'value1', 'key:2', 'value2')
cur = b'0' # set initial cursor to 0
while cur:
cur, keys = await redis.scan(cur, match='key:*')
print("Iteration results:", keys)
redis.close()
await redis.wait_closed()
loop.run_until_complete(go())
if __name__ == '__main__':
import os
if 'redis_version:2.6' not in os.environ.get('REDIS_VERSION', ''):
main()
Python 3.4 examples (using yield from
)¶
Located in aioredis/examples/py34
Low-level connection usage example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
@asyncio.coroutine
def go():
conn = yield from aioredis.create_connection(
('localhost', 6379), encoding='utf-8')
ok = yield from conn.execute('set', 'my-key', 'some value')
assert ok == 'OK', ok
str_value = yield from conn.execute('get', 'my-key')
raw_value = yield from conn.execute('get', 'my-key', encoding=None)
assert str_value == 'some value'
assert raw_value == b'some value'
print('str value:', str_value)
print('raw value:', raw_value)
# optionally close connection
conn.close()
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Connections pool example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
@asyncio.coroutine
def go():
pool = yield from aioredis.create_pool(
('localhost', 6379),
minsize=5, maxsize=10)
with (yield from pool) as redis: # high-level redis API instance
yield from redis.set('my-key', 'value')
val = yield from redis.get('my-key')
print('raw value:', val)
pool.close()
yield from pool.wait_closed() # closing all open connections
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Commands example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
@asyncio.coroutine
def go():
redis = yield from aioredis.create_redis(
('localhost', 6379))
yield from redis.set('my-key', 'value')
val = yield from redis.get('my-key')
print(val)
# optinally closing underlying connection
redis.close()
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Transaction example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
@asyncio.coroutine
def go():
redis = yield from aioredis.create_redis(
('localhost', 6379))
yield from redis.delete('foo', 'bar')
tr = redis.multi_exec()
fut1 = tr.incr('foo')
fut2 = tr.incr('bar')
res = yield from tr.execute()
res2 = yield from asyncio.gather(fut1, fut2)
print(res)
assert res == res2
redis.close()
yield from redis.wait_closed()
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Pub/Sub example¶
import asyncio
import aioredis
def main():
loop = asyncio.get_event_loop()
@asyncio.coroutine
def reader(ch):
while (yield from ch.wait_message()):
msg = yield from ch.get_json()
print("Got Message:", msg)
@asyncio.coroutine
def go():
pub = yield from aioredis.create_redis(
('localhost', 6379))
sub = yield from aioredis.create_redis(
('localhost', 6379))
res = yield from sub.subscribe('chan:1')
ch1 = res[0]
tsk = asyncio.async(reader(ch1))
res = yield from pub.publish_json('chan:1', ["Hello", "world"])
assert res == 1
yield from sub.unsubscribe('chan:1')
yield from tsk
sub.close()
pub.close()
loop.run_until_complete(go())
if __name__ == '__main__':
main()
Scan command example¶
import asyncio
import aioredis
def main():
"""Scan command example."""
loop = asyncio.get_event_loop()
@asyncio.coroutine
def go():
redis = yield from aioredis.create_redis(
('localhost', 6379))
yield from redis.mset('key:1', 'value1', 'key:2', 'value2')
cur = b'0' # set initial cursor to 0
while cur:
cur, keys = yield from redis.scan(cur, match='key:*')
print("Iteration results:", keys)
redis.close()
yield from redis.wait_closed()
loop.run_until_complete(go())
if __name__ == '__main__':
import os
if 'redis_version:2.6' not in os.environ.get('REDIS_VERSION', ''):
main()