Redis Streams
Detailed documentation on the Redis Streams pubsub component
Component format
To setup Redis Streams pubsub create a component of type pubsub.redis
. See this guide on how to create and apply a pubsub configuration.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: redis-pubsub
namespace: default
spec:
type: pubsub.redis
version: v1
metadata:
- name: redisHost
value: localhost:6379
- name: redisPassword
value: "KeFg23!"
- name: consumerID
value: "myGroup"
- name: enableTLS
value: "false"
Warning
The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described here.
Spec metadata fields
Field | Required | Details | Example |
---|---|---|---|
redisHost | Y | Connection-string for the redis host | localhost:6379 , redis-master.default.svc.cluster.local:6379 |
redisPassword | Y | Password for Redis host. No Default. Can be secretKeyRef to use a secret reference | “” , “KeFg23!” |
consumerID | N | The consumer group ID | “myGroup” |
enableTLS | N | If the Redis instance supports TLS with public certificates, can be configured to be enabled or disabled. Defaults to “false” | “true” , “false” |
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.
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).
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"
Note
The Dapr CLI automatically deploys a local redis instance in self hosted mode as part of the dapr init
command.
Related links
- Basic schema for a Dapr component
- Read this guide for instructions on configuring pub/sub components
- Pub/Sub building block
Last modified March 18, 2021: Merge pull request #1321 from dapr/aacrawfi/logos (9a399d5)