Skip to main content

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