文章内容

2023/2/13 11:23:05,作 者: 黄兵

redis.Redis 和 redis.StrictRedis 的区别

最近在优化代码的时候,看到连接 Redis 数据库优如下写法:

class RedisOperation(object):
    def __new__(cls):
        if not hasattr(cls, 'instance'):
            get_env_config = os.getenv('FLASK_CONFIG') or 'default'
            get_config = app.config.get(get_env_config)
            pool = redis.ConnectionPool(host=get_config.REDIS_HOST,
                                        port=int(get_config.REDIS_PORT),
                                        password=get_config.REDIS_PASSWORD,
                                        decode_responses=get_config.DECODE_RESPONSES)
            cls.instance = redis.StrictRedis(connection_pool=pool)
        return cls.instance

上面使用了单例模式来连接数据库,最后使用 redis.StrictRedis() 我看了一下也可以使用 redis.Redis() 的方式连接数据库。

两者有什么区别呢?

通过查询其他人对此问题的回答,总结如下:

他们两者是等价的。
redis-py 3.0 放弃了对遗留“Redis”客户端类的支持。“StrictRedis”已更名为“Redis”,并提供一个名为“StrictRedis”的别名,以便之前使用“StrictRedis”的用户可以继续运行不变。

当然更多的细节,可以参考下面的参考资料。


参考资料:

1、redis-py : What's the difference between StrictRedis() and Redis()?


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - redis.Redis 和 redis.StrictRedis 的区别

分享到:

发表评论

评论列表