首页 > 数据库 >9. Redis封装使用

9. Redis封装使用

时间:2022-11-23 17:55:50浏览次数:44  
标签:封装 Redis self redis instances 使用 conn cls

可直接使用如下代码,对redis进行直接的使用。
封装代码:
import redis
import os


def singleton(cls):
    """ 单例模式装饰器 """
    instances = {}

    def get_instance(*args, **kwargs):
        if cls not in instances:
            instances[cls] = cls(*args, **kwargs)
        return instances[cls]

    return get_instance


# 创建一个带有装饰器的类
@singleton
class RedisPool:
    def __init__(self):
        self._redis_conn = None
        self.pool = redis.ConnectionPool(
            host=os.getenv('REDIS_IP') if os.getenv('REDIS_IP') else '127.0.0.1',
            port=6379,
            decode_responses=True
        )

    @property
    def redis_conn(self) -> redis.Redis:
        self._redis_conn = redis.Redis(connection_pool=self.pool)
        return self._redis_conn

下次需要使用redis的时候,直接调用上面封装好的方法即可,如:

   r = RedisPool().redis_conn
    r.set('foo', 'bar')
    r.lpush("a","b")
    r.lpush("a","c")
    r.lpush("a","d")
    r.lpop("a")

     

标签:封装,Redis,self,redis,instances,使用,conn,cls
From: https://www.cnblogs.com/dyl0/p/16919238.html

相关文章