aioredis

import asyncio
import aioredis

from config.env_config import REDIS_URL


class RedisClient:
    def __init__(self, url, decode_responses=True, max_connections=30):
        self.url = url
        self.decode_responses = decode_responses
        self.max_connections = max_connections
        self.redis = None

    async def connect(self):
        self.redis = await aioredis.from_url(
            self.url,
            decode_responses=self.decode_responses,
            max_connections=self.max_connections
        )

    async def disconnect(self):
        if self.redis:
            await self.redis.close()
            self.redis = None

    async def set(self, key, value, ex=None):
        if not self.redis:
            await self.connect()
        await self.redis.set(key, value, ex=ex)

    async def get(self, key):
        if not self.redis:
            await self.connect()
        return await self.redis.get(key)


redis_client = RedisClient(
    url=REDIS_URL,
    decode_responses=True,
    max_connections=30
)


async def run():
    await redis_client.set("date", "2023-12-15", 3)
    day = await redis_client.get("date")
    print(day)


if __name__ == '__main__':
    asyncio.run(run())

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章