1.redis模块
python里的redis库不支持redis集群操作,写个简单的代码测试一下:
import redisr =redis.StrictRedis(host='192.168.222.66',port=6379)
r.set("name","Tom")
print(r.get("name"))
结果报了如下异常:redis.exceptions.ResponseError: MOVED 12285 192.168.222.66:6384
...File "/Library/Python/2.7/site-packages/redis/connection.py", line 582, in read_responseraise response
redis.exceptions.ResponseError: MOVED 12285 192.168.222.66:6384
2.redis-py-cluster模块
2.1安装
pip3 install redis-py-cluster
2.2 连接redis集群
示例代码:
from rediscluster import RedisClusterdef redis_cluster():nodes = [{"host": "192.168.222.21", "port": "6379"},{"host": "192.168.222.22", "port": "6379"},{"host": "192.168.222.23", "port": "6379"},{"host": "192.168.222.24", "port": "6379"},{"host": "192.168.222.25", "port": "6379"},{"host": "192.168.222.26", "port": "6379"}]try:# 非密码连接redis集群# rc = RedisCluster(startup_nodes=nodes, decode_responses=True)# 使用密码连接redis集群, redis取出的结果默认是字节,可以设置 decode_responses=True 将取出的结果改成字符串。rc = RedisCluster(startup_nodes=nodes, decode_responses=True, password="AX123456")except Exception as e:print(f"连接redis集群失败:{e}")# 设置 name 对应的值rc.set('name', 'Tom')# 取出键name对应的值print(rc.get('name'))
输出结果为:
Tom