属性错误:模块“redis”没有属性“RedisCluster”

lf3rwulv  于 2023-10-15  发布在  Redis
关注(0)|答案(2)|浏览(168)

我正在尝试用下面的代码连接到一个redis集群。

import redis

ssl_ca_certs='<path_to_ca_certfile>'

r = redis.RedisCluster(
  host='<RedisHOST>',
  port=6379,
  ssl=True,
  password='<password>',
  ssl_ca_certs=ssl_ca_certs
  )

代码在一段时间内运行良好。但最近我得到了错误
回溯(最近的呼叫最后一次):文件“/home/rnatarajan/network-signals/py-demo/get-redis-cli.py”,第7行,在
r = redis.RedisCluster(
属性错误:模块“redis”没有属性“RedisCluster”
我尝试卸载并重新安装redis软件包。
我把redis-py-cluster包。
注意:我用的是ubuntu22.04

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:    22.04
Codename:   jammy

我用的是python3.10

$ python3 --version
Python 3.10.12

你知道如何修复这个错误吗?

jobtbby3

jobtbby31#

我认为应该这样使用:

redis.cluster.RedisCluster(...)
s2j5cfk0

s2j5cfk02#

redis-py(pip install redis)现在支持集群,所以你不需要额外的包。试试这样的方法:

from redis.cluster import RedisCluster as Redis
rc = Redis(host='localhost', port=6379)
print(rc.get_nodes())
    [[host=127.0.0.1,port=6379,name=127.0.0.1:6379,server_type=primary,redis_connection=Redis<ConnectionPool<Connection<host=127.0.0.1,port=6379,db=0>>>], [host=127.0.0.1,port=6378,name=127.0.0.1:6378,server_type=primary,redis_connection=Redis<ConnectionPool<Connection<host=127.0.0.1,port=6378,db=0>>>], [host=127.0.0.1,port=6377,name=127.0.0.1:6377,server_type=replica,redis_connection=Redis<ConnectionPool<Connection<host=127.0.0.1,port=6377,db=0>>>]]

参考:https://redis.readthedocs.io/en/stable/clustering.html#

相关问题