The documentation you are viewing is for Dapr v1.12 which is an older version of Dapr. For up-to-date documentation, see the latest version.

Redis 绑定规范

Redis 组件绑定详细文档

配置

要设置 Redis 绑定,请创建一个类型为 bindings.redis的组件。 请参阅本指南,了解如何创建和应用绑定配置。

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: <NAME>
  namespace: <NAMESPACE>
spec:
  type: bindings.redis
  version: v1
  metadata:
  - name: redisHost
    value: <address>:6379
  - name: redisPassword
    value: **************
  - name: enableTLS
    value: <bool>

元数据字段规范

字段 必填 绑定支持 详情 示例
redisHost 输出 Redis 服务器地址 "localhost:6379"
redisPassword 输出 Redis 密码 "password"
redisUsername 输出 Redis 主机的用户名。 默认为空. 确保您的 redis 服务器版本为 6 或更高版本,并且已正确创建 acl 规则。 "username"
enableTLS 输出 If the Redis instance supports TLS with public certificates it can be configured to enable or disable TLS. 默认值为 "false" "true", "false"
failover 输出 已启用故障转移配置的属性。 需要设置 sentinalMasterName。 默认值为 "false" "true", "false"
sentinelMasterName 输出 哨兵主名称。 请参阅 Redis Sentinel 文档 "", "127.0.0.1:6379"
redeliverInterval 输出 检查待处理消息到重发的间隔。 默认为 "60s". "0" 禁用重发。 "30s"
processingTimeout 输出 在尝试重新发送消息之前必须等待的时间。 默认为 "15s""0" 禁用重发。 "30s"
redisType 输出 Redis 的类型。 有两个有效的值,一个是 "node" 用于单节点模式,另一个是 "cluster" 用于 redis 集群模式。 默认为 "node" "cluster"
redisDB 输出 连接到 redis 后选择的数据库。 如果 "redisType""cluster " 此选项被忽略。 默认值为 "0". "0"
redisMaxRetries 输出 放弃前重试命令的最大次数。 默认值为不重试失败的命令。 "5"
redisMinRetryInterval 输出 每次重试之间 redis 命令的最小回退时间。 默认值为 "8ms"; "-1" 禁用回退。 "8ms"
redisMaxRetryInterval 输出 每次重试之间 redis 命令的最大回退时间。 默认值为 "512ms";"-1" 禁用回退。 "5s"
dialTimeout 输出 建立新连接的拨号超时。 默认为 "5s" "5s"
readTimeout 输出 套接字读取超时。 如果达到,redis命令将以超时的方式失败,而不是阻塞。 默认为 "3s", "-1" 表示没有超时。 "3s"
writeTimeout 输出 套接字写入超时。 如果达到,redis命令将以超时的方式失败,而不是阻塞。 默认值为 readTimeout。 "3s"
poolSize 输出 最大套接字连接数。 默认是每个CPU有10个连接,由 runtime.NumCPU 所述。 "20"
poolTimeout 输出 如果所有连接都处于繁忙状态,客户端等待连接时间,超时后返回错误。 默认值为 readTimeout + 1 秒。 "5s"
maxConnAge 输出 客户端退出(关闭)连接时的连接期限。 默认值是不关闭过期的连接。 "30m"
minIdleConns 输出 保持开放的最小空闲连接数,以避免创建新连接带来的性能下降。 默认值为 "0". "2"
idleCheckFrequency 输出 空闲连接后的空闲检查频率。 默认值为 "1m""-1" 禁用空闲连接回收。 "-1"
idleTimeout 输出 客户端关闭空闲连接的时间量。 应小于服务器的超时。 默认值为 "5m""-1" 禁用空闲超时检查。 "10m"

绑定支持

该组件支持如下操作的 输出绑定

  • create

创建Redis实例

Dapr可以使用任何Redis实例,无论是容器化的,运行在本地开发机器上的,或者是托管的云服务,前提是Redis的版本是5.0.0或更高。


Dapr CLI将自动为你创建和设置一个Redis Streams实例。 当你执行dapr init时,Redis实例将通过Docker安装,组件文件将在默认目录下创建。 (默认目录位于$HOME/.dapr/components (Mac/Linux) ,%USERPROFILE%\.dapr\components (Windows)).


您可以使用 helm 在我们的 Kubernetes 集群中快速创建 dapr 实例。 这种方法需要安装Helm

  1. 安装 Redis 到你的集群:

    helm repo add bitnami https://charts.bitnami.com/bitnami
    helm install redis bitnami/redis
    
  2. 执行kubectl get pods来查看现在正在集群中运行的Redis容器。

  3. 在您的redis.yaml文件中添加redis-master:6379作为redisHost。 例如:

        metadata:
        - name: redisHost
          value: redis-master:6379
    
  4. 接下来,我们会获取到我们的Redis密码,根据我们使用的操作系统不同,密码也会略有不同:

    • Windows:执行kubectl get secret --namespace default redis -o jsonpath="{.data.redis-password}" > encoded.b64,这将创建一个有你的加密后密码的文件。 接下来,执行certutil -decode encoded.b64 password.txt,它将把你的redis密码放在一个名为password.txt的文本文件中。 复制密码,删除这两个文件。

    • Linux/MacOS:执行 kubectl get secret --namespace default redis -o jsonpath="{.data.redis-password}" | base64 --decode并复制输出的密码。

    将此密码设置为redis.yaml文件的redisPassword的值。 例如:

        - name: redisPassword
          value: "lhDOkwTlp0"
    

相关链接