
# 连接DCS集群实例
```
from redis.cluster import RedisCluster as Redis
from redis.cluster import ClusterNode
redis_client = None
def create_redis_client(context):
    logger = context.getLogger()
    redis_cluster_nodes = context.getUserData(
        "redis_ip_address")
    redis_password = context.getUserData(
        "redis_password")
    startup_nodes = []
    for redis_node in redis_cluster_nodes.split(','):
        node_info = redis_node.split(":")
        startup_nodes.append(ClusterNode(host=node_info[0], port=node_info[1]))
    logger.info("redis startup_nodes={}".format(startup_nodes))
    client = Redis(startup_nodes=startup_nodes,
                   password=redis_password,
                   cluster_error_retry_attempts=3,
                   socket_timeout=2,
                   socket_connect_timeout=2,
                   health_check_interval=60, max_connections=50,
                   decode_responses=True)
    return client
def initializer(context):
    global redis_client
    redis_client = create_redis_client(context)
    redis_client.ping()
def handler(event, context):
    logger = context.getLogger()
    redis_client.set('foo', 'bar')
    value = redis_client.get('foo')
    logger.info("redis get key foo value={}".format(value))
    return value
```
表1RedisCluster配置 
| 参数                           | 默认值       | 说明                                                             |
|:---|:---|:---|
| host                         | localhost | 连接Redis实例的IP地址/域名                                              |
| port                         | 6379      | 连接端口号                                                          |
| cluster_error_retry_attempts | 3         | 当遇到TimeoutError、ConnectionError或ClusterDownError时，在抛出异常之前重试的次数 |
   
其他参数配置可以参考[表3](https://support.huaweicloud.com/bestpractice-functiongraph/functiongraph_05_1141.html#functiongraph_05_1141__table5830171115213)。
