3.2 KiB
Setup Redis Streams
Creating 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. If you already have a Redis instance > 5.0.0 installed, move on to the Configuration section.
Running locally
The Dapr CLI will automatically create and setup a Redis Streams instance for you when you.
The Redis instance will be installed via Docker when you run dapr init
, and the component file will be setup with dapr run
.
Creating a Redis instance in your Kubernetes Cluster using Helm
We can use Helm to quickly create a Redis instance in our Kubernetes cluster. This approach requires Installing Helm.
-
Install Redis into your cluster:
helm install redis stable/redis
. Note that we're explicitly setting an image tag to get a version greater than 5, which is what Dapr' pub/sub functionality requires. -
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"
-
Other ways to create a Redis Database
Configuration
To setup Redis, you need to create a component for pubsub.redis
.
The following yaml files demonstrates how to define each. Note: yaml files below illustrate secret management in plain text. In a production-grade application, follow secret management instructions to securely manage your secrets.
Configuring Redis Streams for Pub/Sub
Create a file called pubsub.yaml, and paste the following:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: messagebus
spec:
type: pubsub.redis
metadata:
- name: redisHost
value: <HOST>
- name: redisPassword
value: <PASSWORD>
Apply the configuration
Kubernetes
kubectl apply -f pubsub.yaml
Standalone
By default the Dapr CLI creates a local Redis instance when you run dapr init
. When you run an app using dapr run
, the component file will automatically be created for you in a components
dir in your current working directory.