开发者社区> 问答> 正文

Python 连接 Redis 报错,求助?报错

我刚学 Python 2 两天,写一个简单连接 redis 的代码如下:

# -*- coding: utf-8 -*-
import sys
import configparser
import redis


class Redis:

    config = ''  # Refer to config.ini
    redis_conn = ''  # Refer to Instance of redis connection

    def __init__(self):

        self.config = configparser.ConfigParser()
        self.config.read("config.ini")

        try:
            redis_host = self.config.get("redis", "host")
            redis_port = self.config.get("redis", "port")
            redis_db = self.config.getint("redis", "db")
            self.redis_conn = redis.Redis(host=redis_host, port=redis_port, db=redis_db)
        except Exception as e:
            print("Unabled to connect Redis, Please check redis configuration.\n", e)
            sys.exit()

    # Read Redis Data
    def get(self, name, key):
        return self.redis_conn.hget(name, key)

    # Save Redis Data
    def set(self, name, key, value):
        self.redis_conn.hset(name, key, value)

    # Delete Redis Data
    def evict(self, name, keys):
        self.redis_conn.hdel(name, keys)

    # Close Redis Connection
    def close(self):
        self.redis_conn.shutdown()


if __name__ == '__main__':
    redis = Redis()
    region = "users"
    redis.set(region, 2, {'name':"Winter Lau",'age':1})
    user = redis.get(region, 2)
    user

在 PyCharm 中运行出错信息如下:

 __init__() got an unexpected keyword argument 'host'

而同样的代码在 python 的命令行中执行是没错的。求助啊,哪里写错了!

展开
收起
爱吃鱼的程序员 2020-06-08 16:51:35 836 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    问题找到了,是我的Redis类和redis模块的命名冲突了!

    名字不要一样吧,或者单独弄一个自己模块你也有今天

    什么时候建Py2Cache项目,赶紧建吧

    最好从第一行代码开始就上,不要等着都写差不多了才发布,来个记录直播

    f ggg
    2020-06-08 16:51:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ApsaraDB for Redis——与创客同行 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载