简体   繁体   English

将 Redis 集群与 Python 连接

[英]Connect Redis Cluster with Python

I trying to connect to my redis cluster container but can't.我尝试连接到我的 redis 集群容器,但无法连接。 My script is always stuck and never responds to anything every time I execute it.我的脚本总是卡住,每次执行时都没有响应。 Here is my python script:这是我的 python 脚本:

import redis

r = redis.RedisCluster(
    host='127.0.0.1',
    port=36379
)

r.set('foo', 'bar')
value = r.get('foo')
print(value)

And here is docker compose for my redis cluster:这是为我的 redis 集群编写的 docker:

version : '3.4'

services:
  redis:
    image: docker.io/bitnami/redis-cluster:7.0
    environment:
      - 'ALLOW_EMPTY_PASSWORD=yes'
      - 'REDIS_NODES=redis redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
    ports:
      - 36379:6379

  redis-node-1:
    image: docker.io/bitnami/redis-cluster:7.0
    environment:
      - 'ALLOW_EMPTY_PASSWORD=yes'
      - 'REDIS_NODES=redis redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'


  redis-node-2:
    image: docker.io/bitnami/redis-cluster:7.0
    environment:
      - 'ALLOW_EMPTY_PASSWORD=yes'
      - 'REDIS_NODES=redis redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'

  redis-node-3:
    # <<: *redis-common
    image: docker.io/bitnami/redis-cluster:7.0
    environment:
      - 'ALLOW_EMPTY_PASSWORD=yes'
      - 'REDIS_NODES=redis redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'

  redis-node-4:
    image: docker.io/bitnami/redis-cluster:7.0
    environment:
      - 'ALLOW_EMPTY_PASSWORD=yes'
      - 'REDIS_NODES=redis redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'

  redis-node-5:
    image: docker.io/bitnami/redis-cluster:7.0
    environment:
      - 'ALLOW_EMPTY_PASSWORD=yes'
      - 'REDIS_NODES=redis redis-node-1 redis-node-2 redis-node-3 redis-node-4 redis-node-5'
      - 'REDIS_CLUSTER_REPLICAS=1'
      - 'REDIS_CLUSTER_CREATOR=yes'
    depends_on:
      - redis
      - redis-node-1
      - redis-node-2
      - redis-node-3
      - redis-node-4

Does anyone here know why?这里有人知道为什么吗?

I have tried various client libraries for redis such as redis-py-cluster and redis but the result is still the same我已经为 redis 尝试了各种客户端库,例如 redis-py-cluster 和 redis,但结果仍然相同

startup_nodes = [
    ('127.0.0.1', 7000),
    ('127.0.0.1', 7001),
    ('127.0.0.1', 7002),
    ('127.0.0.1', 7003)
]
rc = redis.RedisCluster(startup_nodes=startup_nodes)

Have you tried entering nodes this way?您是否尝试过以这种方式进入节点? I think you can give it a try.我想你可以试一试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM