Skip to content

Version v1.5.1 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot. For up-to-date documentation, see the latest version.

Config: REDIS

Historical documentation restored from the Pigsty v1.5.1 tag.

Config Redis cluster and manipulate REDIS playbook behavior. Refer to Redis Deployment for details.

ID Name Section Type Level Comment
700 redis_cluster REDIS_IDENTITY string C redis cluster identity
701 redis_node REDIS_IDENTITY int I redis node identity
702 redis_instances REDIS_IDENTITY instance[] I redis instances definition on this node
710 redis_fs_main REDIS_NODE path C main data disk for redis
711 redis_exporter_enabled REDIS_NODE bool C install redis exporter on redis nodes
712 redis_exporter_port REDIS_NODE int C default port for redis exporter
713 redis_exporter_options REDIS_NODE string C/I default cli args for redis exporter
720 redis_safeguard REDIS_PROVISION bool C set to true to disable purge
721 redis_clean REDIS_PROVISION bool C purge existing redis during init
722 redis_rmdata REDIS_PROVISION bool C remove redis data dir with it?
723 redis_mode REDIS_PROVISION enum C standalone,cluster,sentinel
724 redis_conf REDIS_PROVISION string C which config template will be used
725 redis_bind_address REDIS_PROVISION ip C e.g 0.0.0.0, empty will use inventory_hostname as bind address
726 redis_max_memory REDIS_PROVISION size C/I max memory used by each redis instance
727 redis_mem_policy REDIS_PROVISION enum C memory eviction policy
728 redis_password REDIS_PROVISION string C empty password disable password auth (masterauth & requirepass)
729 redis_rdb_save REDIS_PROVISION string[] C RDB save cmd, disable with empty array
730 redis_aof_enabled REDIS_PROVISION bool C enable redis AOF
731 redis_rename_commands REDIS_PROVISION object C rename dangerous commands
732 redis_cluster_replicas REDIS_PROVISION int C how much replicas per master in redis cluster ?

REDIS_IDENTITY

Identity parameters are the information that must be provided to define a Redis cluster, including:

Name Level Description Example
redis_cluster MUST, cluster level Cluster name redis-test
redis_node MUST, node level Node Number primary, replica
redis_instances MUST, node level Ins Definition { 6001 : {} ,6002 : {}}
  • redis_cluster identifies the Redis cluster name, configured at the cluster level, and serves as the top-level namespace for cluster resources.
  • redis_node identifies the serial number of the node in the cluster.
  • redis_instances is a JSON object with the Key as the ins port and the Value as a JSON object containing the instance-specific config.

redis_cluster

Redis cluster identity, type: string, level: C, default value:

Redis cluster identity will be used as a namespace for resources within the cluster and needs to follow specific naming patterns: [a-z][a-z0-9-]* to be compatible with different constraints on identity identification. It is recommended to use redis- as the cluster name prefix.

Identity param is required params and cluster-level params.

redis_node

Redis node identity, type: int, level: I, default value:

Redis node identity, unique in the cluster, is used to distinguish and identify different nodes, starting with an assignment of 0 or 1.

redis_instances

Redis instances definition on this node, type: instance[], level: I, default value.

This database node deployed all Redis ins in JSON K-V object format. The key is the numeric type port number, and the value is the JSON config entry specific to that instance.

Sample example:

redis_instances: { 6501 : {} ,6502 : {} ,6503 : {} ,6504 : {} ,6505 : {} ,6506 : {} }
redis_instances:
    6501: {}
    6502: { replica_of: '10.10.10.13 6501' }
    6503: { replica_of: '10.10.10.13 6501' }

Each Redis ins listens on a unique port on the node. You can configure separate parameter options for Redis ins (currently, only replica_of is supported for pre-built M-S replication).

Identity params required params and instance-level params.


REDIS_NODE

redis_fs_main

Primary data disk for Redis, type: path, level: C, default value: "/data".

Pigsty will create the redis dir under that dir to store Redis data. For example, /data/redis.

See FHS: Redis for details.

redis_exporter_enabled

Enable Redis exporter, type: bool, level: C, default: true.

Redis Exporter is enabled by default, one on each Redis node deployed and listens on port 9121 by default.

redis_exporter_port

Redis Exporter listens port, type: int, tier: C, default value: 9121.

Note: If you modify this default port, you will need to replace this port along with the relevant config rule file in Prometheus.

redis_exporter_options

Redis Exporter command parameter, type: string, level: C/I, default value: "".


REDIS_PROVISION

redis_safeguard

Disable erasure of existing Redis, type: bool, level: C/A, default value: false.

if true, redis.yml and redis-remove.yml will not remove running redis instance

redis_clean

What to do when Redis exists, type: bool, level: C/A, default value: true.

If true, redis.yml will purge existing instance during init.

redis_rmdata

Remove the Redis data directory together with an instance, type: bool, level: A, default value: true.

When false, residual RDB/AOF files remain and may be loaded by a later instance using the same directory.

redis_mode

Redis cluster mode, type: enum, level: C, default value: "standalone".

Specifies the mode of this Redis cluster, with three optional modes:

  • standalone: Default mode, deploys a series of independent Redis ins.
  • cluster: Redis native cluster mode
  • sentinel: Redis HA component: sentinel

Pigsty also sets up standalone Redis based on the replica_of parameter when using the standalone mode. Pigsty creates a native Redis cluster using all defined instances according to the redis_cluster_replicas parameter when using cluster mode.

redis_conf

Redis config template, type: string, level: C, default value: "redis.conf".

redis_bind_address

Redis listener address, type: ip, level: C, default value: "0.0.0.0".

Redis listener the IP, or inventory_hostname if left blank. The default listener has all local IPv4.

redis_max_memory

Max memory used by each Redis ins, type: size, level: C/I, default value: "1GB"

Max memory used by each Redis ins, default is 1GB; it is recommended to configure this parameter at the cluster level to keep the cluster ins config consistent.

redis_mem_policy

Memory eviction policy, type: enum, level: C, default value: "allkeys-lru".

Other optional policies include:

  • volatile-lru
  • allkeys-lru
  • volatile-lfu
  • allkeys-lfu
  • volatile-random
  • allkeys-random
  • volatile-ttl
  • noeviction

redis_password

Redis password, type: string, level: C, default value: "".

masterauth & requirepass password to use, leave blank to disable password, disabled by default.

Warning

Be careful with security, do not place Redis on the public network without password protection.

redis_rdb_save

RDB SAVE directives, type: string[], level: C, default value: [ "1200 1" ].

Redis SAVE directives, the config will enable RDB functionality, each Save policy as a string。

redis_aof_enabled

Enable AOF, type: bool, level: C, default value: false.

redis_rename_commands

Rename dangerous commands, Type: object, Level: C, Default value: {}.

JSON dictionary renames the command represented by Key to the command represented by Value to avoid misuse of dangerous commands.

redis_cluster_replicas

How many replicas per primary in Redis cluster, type: int, tier: C, default: 1.

/bin/redis-cli --cluster create --cluster-yes \
  --cluster-replicas {{ redis_cluster_replicas|default(1) }}