Redisとは

  • インメモリデータベース

  • Key Value Store

  • 速い

  • Pub/Subの機能もある

Whalebrew

#!/usr/bin/env whalebrew
image: redis:alpine3.13
ports:
  - "6379:6379"

Pythonとredis-pyでRedisを使う

redis-pyをインストールする。

pip install redis

Redisに接続する。

  import redis

  conn = redis.Redis(
      host="host.docker.internal",
      port="6379"
      db=1,
  )

YOUR_REDIS_KEY_NAMEdata という文字列を保存する。

  conn.rpush("YOUR_REDIS_KEY_NAME", "data")

blpop は値を取得する。値がない場合はブロックする。

  conn.blpop("YOUR_REDIS_KEY_NAME")

PythonとaioredisでRedisを使う

aioredisをインストールする。

pip install aioredis

Redisに接続し YOUR_REDIS_KEY_NAME キーに入っている値を1つ取得する。 blpop は取得する値がない場合はブロックする。

  async def main():
    conn = await aioredis.create_redis_pool("redis://host.docker.internal:6379/1")
    return awati conn.blpop("YOUR_REDIS_KEY_NAME")

asyncio.run() で非同期処理として実行する。

  import asyncio

  asyncio.run(main())