4.3 KiB
type | title | linkTitle | description | aliases | |
---|---|---|---|---|---|
docs | Redis binding spec | Redis | Detailed documentation on the Redis binding component |
|
Component format
To setup Redis binding create a component of type bindings.redis
. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration.
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>
{{% alert title="Warning" color="warning" %}} The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}). {{% /alert %}}
Spec metadata fields
Field | Required | Binding support | Details | Example |
---|---|---|---|---|
redisHost | Y | Output | The Redis host address | "localhost:6379" |
redisPassword | Y | Output | The Redis password | "password" |
enableTLS | N | Output | If the Redis instance supports TLS with public certificates it can be configured to enable or disable TLS. Defaults to "false" |
"true" , "false" |
Binding support
This component supports output binding with the following operations:
create
Create a Redis instance
Dapr can use any Redis instance - containerized, running on your local dev machine, or a managed cloud service, provided the version of Redis is 5.0.0 or later.
{{< tabs "Self-Hosted" "Kubernetes" "AWS" "GCP" "Azure">}}
{{% codetab %}}
The Dapr CLI will automatically create and setup a Redis Streams instance for you.
The Redis instance will be installed via Docker when you run dapr init
, and the component file will be created in default directory. ($HOME/.dapr/components
directory (Mac/Linux) or %USERPROFILE%\.dapr\components
on Windows).
{{% /codetab %}}
{{% codetab %}} You can use Helm to quickly create a Redis instance in our Kubernetes cluster. This approach requires Installing Helm.
-
Install Redis into your cluster.
helm repo add bitnami https://charts.bitnami.com/bitnami helm install redis bitnami/redis
-
Run
kubectl get pods
to see the Redis containers now running in your cluster. -
Add
redis-master:6379
as theredisHost
in your redis.yaml file. For example:metadata: - name: redisHost value: redis-master:6379
-
Next, we'll get our Redis password, which is slightly different depending on the OS we're using:
-
Windows: Run
kubectl get secret --namespace default redis -o jsonpath="{.data.redis-password}" > encoded.b64
, which will create a file with your encoded password. Next, runcertutil -decode encoded.b64 password.txt
, which will put your redis password in a text file calledpassword.txt
. Copy the password and delete the two files. -
Linux/MacOS: Run
kubectl get secret --namespace default redis -o jsonpath="{.data.redis-password}" | base64 --decode
and copy the outputted password.
Add this password as the
redisPassword
value in your redis.yaml file. For example:- name: redisPassword value: "lhDOkwTlp0"
-
{{% /codetab %}}
{{% codetab %}} AWS Redis {{% /codetab %}}
{{% codetab %}} GCP Cloud MemoryStore {{% /codetab %}}
{{% codetab %}} Azure Redis {{% /codetab %}}
{{< /tabs >}}
{{% alert title="Note" color="primary" %}}
The Dapr CLI automatically deploys a local redis instance in self hosted mode as part of the dapr init
command.
{{% /alert %}}
Related links
- [Basic schema for a Dapr component]({{< ref component-schema >}})
- [Bindings building block]({{< ref bindings >}})
- [How-To: Trigger application with input binding]({{< ref howto-triggers.md >}})
- [How-To: Use bindings to interface with external resources]({{< ref howto-bindings.md >}})
- [Bindings API reference]({{< ref bindings_api.md >}})