9. Redis封装使用

可直接使用如下代码,对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")

 
 
 
posted on 2022-11-23 17:43  叮叮当~  阅读(34)  评论(0)    收藏  举报