Redis Distributed Lock
Type: lock.redis
Status: alpha
Reference: https://docs.dapr.io/reference/components-reference/supported-locks/redis-lock/
Example
apiVersion: cra.diagrid.io/v1beta1
kind: Component
metadata:
  name: <name>
spec:
  type: lock.redis
  version: v1
  metadata:
    # The Redis password (Optional)
    #- name: redisPassword
    #  value: "redis-password"
    # The Redis username (Optional)
    #- name: redisUsername
    #  value: "redis-user"
    # The Redis host address
    - name: redisHost
      value: "mycompany.com:6379"
    # Dial timeout duration (Optional)
    #- name: dialTimeout
    #  value: "5s"
    # Whether to enable TLS encryption (Optional)
    #- name: enableTLS
    #  value: "false"
    # Whether to enable failover mode (for Sentinel) (Optional)
    #- name: failover
    #  value: "false"
    # Idle check frequency (Optional)
    #- name: idleCheckFrequency
    #  value: "1m"
    # Idle timeout duration (Optional)
    #- name: idleTimeout
    #  value: "5m"
    # Prefix added to keys in the state store. (Optional)
    #- name: keyPrefix
    #  value: "appid"
    # Maximum connection age (Optional)
    #- name: maxConnAge
    #  value: "30m"
    # Maximum number of retries when attempting to acquire a lock (Optional)
    #- name: maxRetries
    #  value: "3"
    # Maximum backoff duration between retries (Optional)
    #- name: maxRetryBackoff
    #  value: "2s"
    # Minimum idle connections (Optional)
    #- name: minIdleConns
    #  value: "0"
    # Connection pool size (Optional)
    #- name: poolSize
    #  value: "10"
    # Connection pool timeout (Optional)
    #- name: poolTimeout
    #  value: "4s"
    # Processing timeout for lock ownership (Optional)
    #- name: processingTimeout
    #  value: "60s"
    # Read timeout duration (Optional)
    #- name: readTimeout
    #  value: "3s"
    # Redeliver interval for re-attempting lock acquisition (Optional)
    #- name: redeliverInterval
    #  value: "15s"
    # The Redis database number (Optional)
    #- name: redisDB
    #  value: "0"
    # Maximum Redis retries (Optional)
    #- name: redisMaxRetries
    #  value: "3"
    # Maximum Redis retry interval (Optional)
    #- name: redisMaxRetryInterval
    #  value: "512ms"
    # Minimum Redis retry interval (Optional)
    #- name: redisMinRetryInterval
    #  value: "8ms"
    # The Redis type (Optional)
    #- name: redisType
    #  value: "node"
    # The Sentinel master name (used if redisType is 'sentinel') (Optional)
    #- name: sentinelMasterName
    #  value: "mymaster"
    # Whether to use Entra ID for authentication (Optional)
    #- name: useEntraID
    #  value: "false"
    # Write timeout duration (Optional)
    #- name: writeTimeout
    #  value: "3s"
Authentication profiles
Available authentication profiles:
- 
Password Authentication 
- 
Sentinel Authentication 
- 
TLS Authentication 
Password Authentication
Authenticate using Redis password.
redisPassword
The Redis password
Example value: redis-password
redisUsername
The Redis username
Example value: redis-user
Sentinel Authentication
Authenticate using Redis Sentinel password.
sentinelPassword
The Redis Sentinel password
Example value: sentinel-password
sentinelUsername
The Redis Sentinel username
Example value: sentinel-user
TLS Authentication
Authenticate using Redis TLS certificate.
clientCert
The Redis client certificate
Example value:
-----BEGIN CERTIFICATE-----\nXXX...
clientKey
The Redis client key
Example value:
-----BEGIN PRIVATE KEY-----\nXXX...
Metadata
redisHost
Required - The Redis host address
Example value: mycompany.com:6379
dialTimeout
Dial timeout duration
Default value: 5s
Example value: 5s
enableTLS (bool)
Whether to enable TLS encryption
Default value: false
Example value: false
failover (bool)
Whether to enable failover mode (for Sentinel)
Default value: false
Example value: false
idleCheckFrequency
Idle check frequency
Default value: 1m
Example value: 1m
idleTimeout
Idle timeout duration
Default value: 5m
Example value: 5m
keyPrefix (string)
Prefix added to keys in the state store.
Default value: appid
Example value: appid
Allowed values:
- 
appid 
- 
name 
- 
none 
maxConnAge
Maximum connection age
Default value: 30m
Example value: 30m
maxRetries
Maximum number of retries when attempting to acquire a lock
Default value: 3
Example value: 3
maxRetryBackoff
Maximum backoff duration between retries
Default value: 2s
Example value: 2s
minIdleConns
Minimum idle connections
Default value: 0
Example value: 0
poolSize
Connection pool size
Default value: 10
Example value: 10
poolTimeout
Connection pool timeout
Default value: 4s
Example value: 4s
processingTimeout
Processing timeout for lock ownership
Default value: 60s
Example value: 60s
readTimeout
Read timeout duration
Default value: 3s
Example value: 3s
redeliverInterval
Redeliver interval for re-attempting lock acquisition
Default value: 15s
Example value: 15s
redisDB
The Redis database number
Default value: 0
Example value: 0
redisMaxRetries
Maximum Redis retries
Default value: 3
Example value: 3
redisMaxRetryInterval
Maximum Redis retry interval
Default value: 512ms
Example value: 512ms
redisMinRetryInterval
Minimum Redis retry interval
Default value: 8ms
Example value: 8ms
redisType
The Redis type
Default value: node
Example value: node
Allowed values:
- 
node 
- 
cluster 
- 
sentinel 
sentinelMasterName
The Sentinel master name (used if redisType is 'sentinel')
Example value: mymaster
useEntraID (bool)
Whether to use Entra ID for authentication
Default value: false
Example value: false
writeTimeout
Write timeout duration
Default value: 3s
Example value: 3s