title: Server management commands compatibility

title: Overview

text: The following tables show which Redis Open Source [server management commands](?group=server) are compatible with standard and Active-Active databases in Redis Software and Redis Cloud.

title: Access control commands

text:
Several access control list (ACL) commands are not available in Redis Software. Instead, you can manage access controls from the [Redis Software Cluster Manager UI]() and the [Redis Cloud console]().

| Command | Redis
Software | Redis
Cloud | Notes |
|:--------|:----------------------|:-----------------|:------|
| [ACL CAT]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts](). |
| [ACL DELUSER]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [ACL DRYRUN]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Might reply with "unknown user" for LDAP users even if `AUTH` succeeds. |
| [ACL GENPASS]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [ACL GETUSER]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts](). |
| [ACL HELP]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts](). |
| [ACL LIST]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts](). |
| [ACL LOAD]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [ACL LOG]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [ACL SAVE]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [ACL SETUSER]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [ACL USERS]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts](). |
| [ACL WHOAMI]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts](). |

title: Configuration commands

role: configuration

text:
| Command | Redis
Software | Redis
Cloud | Notes |
|:--------|:----------------------|:-----------------|:------|
| [CONFIG GET]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | [Only supports a subset of configuration settings.]() |
| [CONFIG RESETSTAT]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [CONFIG REWRITE]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [CONFIG SET]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | [Only supports a subset of configuration settings.]() |

title: General server commands

text:
| Command | Redis
Software | Redis
Cloud | Notes |
|:--------|:----------------------|:-----------------|:------|
| [COMMAND]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [COMMAND COUNT]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [COMMAND DOCS]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [COMMAND GETKEYS]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [COMMAND GETKEYSANDFLAGS]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [COMMAND HELP]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [COMMAND INFO]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [COMMAND LIST]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [DEBUG]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [FLUSHALL]() | ✅ Standard
<nobr>❌ Active-Active\*</nobr> | ✅ Standard
<nobr>❌ Active-Active</nobr> | \*Can use the [Active-Active flush API request](). |
| [FLUSHDB]() | ✅ Standard
<nobr>❌ Active-Active\*</nobr> | ✅ Standard
<nobr>❌ Active-Active</nobr> | \*Can use the [Active-Active flush API request](). |
| [HOTKEYS GET]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [HOTKEYS HELP]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [HOTKEYS RESET]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [HOTKEYS START]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [HOTKEYS STOP]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [LOLWUT]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [SHUTDOWN]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [SWAPDB]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [TIME]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |

title: Module commands

text:
For Redis Software, you can [manage Redis modules]() from the Cluster Manager UI or with [REST API requests]().

Redis Cloud manages modules for you and lets you [enable modules]() when you create a database.

| Command | Redis
Software | Redis
Cloud | Notes |
|:--------|:----------------------|:-----------------|:------|
| [MODULE HELP]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [MODULE LIST]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [MODULE LOAD]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [MODULE LOADEX]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [MODULE UNLOAD]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |

title: Monitoring commands

text:
Although Redis Software does not support certain monitoring commands, you can use the Cluster Manager UI to view Redis Software [metrics]() and [logs]() or the Redis Cloud console to view Redis Cloud [metrics]() and [logs]().

| Command | Redis
Software | Redis
Cloud | Notes |
|:--------|:----------------------|:-----------------|:------|
| [DBSIZE]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [INFO]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | In Redis Software, `INFO` returns a different set of fields than Redis Open Source.
Not supported for [scripts](). |
| [LATENCY DOCTOR]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [LATENCY GRAPH]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [LATENCY HELP]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [LATENCY HISTOGRAM]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [LATENCY HISTORY]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [LATENCY LATEST]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [LATENCY RESET]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [MEMORY DOCTOR]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [MEMORY HELP]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts]() in Redis versions earlier than 7. |
| [MEMORY MALLOC-STATS]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [MEMORY PURGE]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [MEMORY STATS]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [MEMORY USAGE]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts]() in Redis versions earlier than 7. |
| [MONITOR]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [SLOWLOG GET]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts](). |
| [SLOWLOG LEN]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts](). |
| [SLOWLOG RESET]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Not supported for [scripts](). |

title: Persistence commands

text:
Data persistence and backup commands are not available in Redis Software. Instead, you can [manage data persistence]() and [backups]() from the Redis Software Cluster Manager UI and the [Redis Cloud console]().

| Command | Redis
Software | Redis
Cloud | Notes |
|:--------|:----------------------|:-----------------|:------|
| [BGREWRITEAOF]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [BGSAVE]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [LASTSAVE]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [SAVE]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |

title: Replication commands

text:
Redis Software automatically manages [replication]().

| Command | Redis
Software | Redis
Cloud | Notes |
|:--------|:----------------------|:-----------------|:------|
| [FAILOVER]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [MIGRATE]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [PSYNC]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [REPLCONF]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [REPLICAOF]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [RESTORE-ASKING]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [ROLE]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |
| [SLAVEOF]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> | Deprecated as of Redis v5.0.0. |
| [SYNC]() | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> |  |


title: Transaction commands compatibility

summary: Transaction commands compatibility.

page_type: content

title: Content

role: content

text:
The following table shows which Redis Open Source [transaction commands](?group=transactions) are compatible with standard and Active-Active databases in Redis Software and Redis Cloud.

| Command | Redis
Software | Redis
Cloud | Notes |
|:--------|:----------------------|:-----------------|:------|
| [DISCARD]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [EXEC]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [MULTI]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [UNWATCH]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| [WATCH]() | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |


title: Compatibility with Redis Open Source configuration settings

summary: Redis Open Source configuration settings supported by Redis Software.

title: Content

text:
Redis Software and [Redis Cloud]() only support a subset of [Redis Open Source configuration settings](). Using [`CONFIG GET`]() or [`CONFIG SET`]() with unsupported configuration settings returns an error.

| Setting | Redis
Software | Redis
Cloud | Notes |
|:--------|:----------------------|:-----------------|:------|
| activerehashing | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| busy-reply-threshold | ✅ Standard
<nobr>✅ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> | Value must be between 0 and 60000 milliseconds. |
| hash-max-listpack-entries | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| hash-max-listpack-value | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| hash-max-ziplist-entries | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| hash-max-ziplist-value | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| hll-sparse-max-bytes | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| list-compress-depth | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| list-max-listpack-size | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| list-max-ziplist-size | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| lua-time-limit | ✅ Standard
<nobr>✅ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> | Value must be between 0 and 60000 milliseconds. |
| maxmemory-samples | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> | |
| notify-keyspace-events | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| set-max-intset-entries | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| slowlog-log-slower-than | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Value must be larger than 1000 microseconds. |
| slowlog-max-len | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> | Value must be between 128 and 1024. |
| stream-node-max-bytes | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| stream-node-max-entries | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| tracking-table-max-keys | ❌ Standard
<nobr>❌ Active-Active</nobr> | ❌ Standard
<nobr>❌ Active-Active</nobr> | For Redis Software, use an [update database configuration]() REST API request or [`rladmin tune db`]() to set `tracking_table_max_keys` instead. |
| zset-max-listpack-entries | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| zset-max-listpack-value | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| zset-max-ziplist-entries | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |
| zset-max-ziplist-value | ✅ Standard
<nobr>✅ Active-Active</nobr> | ✅ Standard
<nobr>✅ Active-Active</nobr> |  |


summary: Redis Software compatibility with Redis Open Source.

summary: Redis Open Source commands compatible with Redis Software.

title: Compatibility with Redis Open Source commands

summary: Redis Software and Redis Cloud compatibility with client-side caching.

summary: Redis Software supports RESP2 and RESP3.

title: RESP compatibility with Redis Software

title: Overview

role: overview

text: Both Redis Software and [Redis Cloud]() are compatible with Redis Open Source.

title: RESP compatibility

text: Redis Software and Redis Cloud support RESP2 and RESP3. See [RESP compatibility with Redis Software]() for more information.

title: Client-side caching compatibility

text: Redis Software and Redis Cloud support [client-side caching]() for databases with Redis versions 7.4 or later. See [Client-side caching compatibility with Redis Software and Redis Cloud]() for more information about compatibility and configuration options.

title: Compatibility with open source Redis Cluster API

role: compatibility

text: Redis Software supports [Redis OSS Cluster API]() if it is enabled for a database. For more information, see [Enable OSS Cluster API]().


title: RESP compatibility with Redis Software

title: Overview

text: RESP (Redis Serialization Protocol) is the protocol that clients use to communicate with Redis databases. See the [RESP protocol specification]() for more information.

title: Supported RESP versions

text:
- RESP2 is supported by all Redis Software versions.

- RESP3 is supported by Redis Software 7.2 and later.

Redis Software versions that support RESP3 continue to support RESP2.

title: Enable RESP3 for a database {#enable-resp3}

text:
To use RESP3 with a Redis Software database:

1. Upgrade Redis servers to version 7.2 or later.

    For Active-Active and Replica Of databases:

    1. Upgrade all participating clusters to Redis Software version 7.2.x or later.

    1. Upgrade all databases to version 7.x or later.

1. Enable RESP3 support for your database (`enabled` by default):

    - [`rladmin tune db`]():

        [code example]

        You can use the database name in place of `db:<ID>` in the preceding command.

    - [Update database configuration]() REST API request:

        [code example]

 ## Deactivate RESP3 for a database {#deactivate-resp3}

 To deactivate RESP3 support for a database:

- [`rladmin tune db`]():

     [code example]

    You can use the database name in place of `db:<ID>` in the preceding command.

- [Update database configuration]() REST API request:

    [code example]

 When RESP3 is deactivated, connected clients that use RESP3 are disconnected from the database.

You cannot use sharded pub/sub if you deactivate RESP3 support. When RESP3 is enabled, you can use sharded pub/sub with either RESP2 or RESP3.

title: Change default RESP3 option

text:
The cluster-wide option `resp3_default` determines the default value of the `resp3` option, which enables or deactivates RESP3 for a database, upon upgrading a database to version 7.2. `resp3_default` is set to `enabled` by default.

To change `resp3_default` to `disabled`, use one of the following methods:

- Cluster Manager UI:

    1. On the **Databases** screen, select  to open a list of additional actions.

    1. Select **Upgrade configuration**.

    1. For **RESP3 support**, select **Disable**.

    1. Click **Save**.

- [`rladmin tune cluster`]()

    [code example]

- [Update cluster policy]() REST API request:

    [code example]

title: Client prerequisites for Redis 7.2 upgrade

text: The Redis clients [Go-Redis](https://redis.uptrace.dev/) version 9 and [Lettuce](https://redis.github.io/lettuce/) versions 6 and later use RESP3 by default. If you use either client to run Redis Stack commands, you should set the client's protocol version to RESP2 before upgrading your database to Redis version 7.2 to prevent potential application issues due to RESP3 breaking changes.

title: Go-Redis

text:
For applications using Go-Redis v9.0.5 or later, set the protocol version to RESP2:

[code example]

title: Lettuce

text:
To set the protocol version to RESP2 with Lettuce v6 or later:

[code example]

If you are using [LettuceMod](https://github.com/redis-developer/lettucemod/), you need to upgrade to [v3.6.0](https://github.com/redis-developer/lettucemod/releases/tag/v3.6.0).

code: rladmin tune db db:<ID> resp3 enabled

code:
PUT /v1/bdbs/<uid>
        { "resp3": true }

code: rladmin tune db db:<ID> resp3 disabled

code:
PUT /v1/bdbs/<uid>
    { "resp3": false }

code: rladmin tune cluster resp3_default disabled

code:
PUT /v1/cluster/policy
    { "resp3_default": false }

code:
client := redis.NewClient(&redis.Options{
    Addr:     "<database_endpoint>",
    Protocol: 2, // Pin the protocol version
})

section_id: go-redis

code:
import io.lettuce.core.*;
import io.lettuce.core.api.*;
import io.lettuce.core.protocol.ProtocolVersion;

// ...
RedisClient client = RedisClient.create("<database_endpoint>");
client.setOptions(ClientOptions.builder()
        .protocolVersion(ProtocolVersion.RESP2) // Pin the protocol version
        .build());
// ...

section_id: lettuce


title: Reference

summary: Redis Software is supported on several operating systems, cloud environments, and virtual environments.

title: Supported platforms

summary: Supported paths to upgrade a Redis Software cluster.

title: Supported upgrade paths for Redis Software

summary: Redis client libraries allow you to connect to Redis instances from within your application. This section provides an overview of several recommended Redis clients for popular programming and scripting languages.

title: Develop with Redis clients

summary: Documents the alerts that are tracked with Redis Software.

title: Alerts

title: Benchmark an Auto Tiering enabled database

summary: Reference for Redis Software command-line utilities, including rladmin, redis-cli, crdb-cli, and rlcheck.

title: Command-line utilities

summary: Documents the metrics that are tracked with Redis Software.

title: Real-time metrics

title: Redis Software compatibility with Redis Open Source

summary: Documents the REST API available to Redis Software deployments.

title: REST API

summary: Explains terms used in Redis Software and its docs.

title: Terminology in Redis Software

page_type: index


title: Overview

text:
Auto Tiering on Redis Software lets you use cost-effective Flash memory as a RAM extension for your database.

But what does the performance look like as compared to a memory-only database, one stored solely in RAM?

These scenarios use the `memtier_benchmark` utility to evaluate the performance of a Redis Software deployment, including the trial version.

The `memtier_benchmark` utility is located in `/opt/redislabs/bin/` of Redis Software deployments.  To test performance for cloud provider deployments, see the [memtier-benchmark GitHub project](https://github.com/RedisLabs/memtier_benchmark).

For additional, such as assistance with larger clusters, [contact support](https://redislabs.com/company/support/).

title: Benchmark and performance test considerations

role: performance

text:
These tests assume you're using a trial version of Redis Software and want to test the performance of a Auto Tiering enabled database in the following scenarios:

- Without replication: Four (4) master shards
- With replication: Two (2) primary and two replica shards

With the trial version of Redis Software you can create a cluster of up to four shards using a combination of database configurations, including:

- Four databases, each with a single master shard
- Two highly available databases with replication enabled (each database has one master shard and one replica shard)
- One non-replicated clustered database with four master shards
- One highly available and clustered database with two master shards and two replica shards

title: Test environment and cluster setup

text:
For the test environment, you need to:

1. Create a cluster with three nodes.
1. Prepare the flash memory.
1. Configure the load generation tool.

title: Creating a three-node cluster {#creating-a-threenode-rs-cluster}

text:
This performance test requires a three-node cluster.

You can run all of these tests on Amazon AWS with these hosts:

- 2 x i3.2xlarge (8 vCPU, 61 GiB RAM, up to 10GBit, 1.9TB NMVe SSD)

    These nodes serve RoF data

- 1 x m4.large, which acts as a quorum node

To learn how to install Redis Software and set up a cluster, see:

- [Redis Software quickstart]() for a test installation
- [Install and upgrade]() for a production installation

These tests use a quorum node to reduce AWS EC2 instance use while maintaining the three nodes required to support a quorum node in case of node failure.  Quorum nodes can be on less powerful instances because they do not have shards or support traffic.

As of this writing, i3.2xlarge instances are required because they support NVMe SSDs, which are required to support RoF.  Auto Tiering requires Flash-enabled storage, such as NVMe SSDs.

For best results, compare performance of a Flash-enabled deployment to the performance in a RAM-only environment, such as a strictly on-premises deployment.

title: Prepare the flash memory

text:
After you install RS on the nodes,
the flash memory attached to the i3.2xlarge instances must be prepared and formatted with the `/opt/redislabs/sbin/prepare_flash.sh` script.

title: Set up the load generation tool

text:
The memtier_benchmark load generator tool generates the load on the RoF databases.
To use this tool, install RS on a dedicated instance that is not part of the RS cluster
but is in the same region/zone/subnet of your cluster.
We recommend that you use a relatively powerful instance to avoid bottlenecks at the load generation tool itself.

For these tests, the load generation host uses a c4.8xlarge instance type.

title: Database configuration parameters

title: Create a Auto Tiering test database

text:
You can use the Redis Software Cluster Manager UI to create a test database.
We recommend that you use a separate database for each test case with these requirements:

|  **Parameter** | **With replication** | **Without replication** | **Description** |
|  ------ | ------ | ------ | ------ |
|  Name | test-1 | test-2 | The name of the test database |
|  Memory limit | 100 GB | 100 GB | The memory limit refers to RAM+Flash, aggregated across all the shards of the database, including master and replica shards. |
|  RAM limit | 0.3 | 0.3 | RoF always keeps the Redis keys and Redis dictionary in RAM and additional RAM is required for storing hot values. For the purpose of these tests 30% RAM was calculated as an optimal value. |
|  Replication | Enabled | Disabled | A database with no replication has only master shards. A database with replication has master and replica shards. |
|  Data persistence | None | None | No data persistence is needed for these tests. |
|  Database clustering | Enabled | Enabled | A clustered database consists of multiple shards. |
|  Number of (master) shards | 2 | 4 | Shards are distributed as follows:
- With replication: One master shard and one replica shard on each node
- Without replication: Two master shards on each node |
|  Other parameters | Default | Default | Keep the default values for the other configuration parameters. |

title: Data population

title: Populate the benchmark dataset

text:
The memtier_benchmark load generation tool populates the database.
To populate the database with N items of 500 Bytes each in size, on the load generation instance run:

[code example]

Set up a test database:

|  **Parameter** | **Description** |
|  ------ | ------ |
|  Database host
(-s) | The fully qualified name of the endpoint or the IP shown in the RS database configuration |
|  Database port
(-p) | The endpoint port shown in your database configuration |
|  Number of items
(–key-maximum) | With replication: 75 Million
Without replication: 150 Million |
|  Item size
(-d) | 500 Bytes |

title: Centralize the keyspace

title: With replication {#centralize-with-repl}

text:
To create roughly 20.5 million items in RAM for your highly available clustered database with 75 million items, run:

[code example]

To verify the database values, use **Values in RAM** metric, which is available from the **Metrics** tab of your database in the Cluster Manager UI.

title: Without replication {#centralize-wo-repl}

text:
To create 41 million items in RAM without replication enabled and 150 million items, run:

[code example]

title: Test runs

title: Generate load

text:
#### With replication {#generate-with-repl}

We recommend that you do a dry run and double check the RAM Hit Ratio on the **Metrics** screen in the Cluster Manager UI before you write down the test results.

To test RoF with an 85% RAM Hit Ratio, run:

[code example]

#### Without replication {#generate-wo-repl}

Here is the command for 150 million items:

[code example]

Where:

|  **Parameter** | **Description** |
|------------|-----------------|
|  Access pattern (--key-pattern) and standard deviation (--key-stddev) | Controls the RAM Hit ratio after the centralization process is complete |
|  Number of threads (-t and -c)\ | Controls how many connections are opened to the database, whereby the number of connections is the number of threads multiplied by the number of connections per thread (-t) and number of clients per thread (-c) |
|  Pipelining (--pipeline)\ | Pipelining allows you to send multiple requests without waiting for each individual response (-t) and number of clients per thread (-c) |
|  Read\write ratio (--ratio)\ | A value of 1:1 means that you have the same number of write operations as read operations (-t) and number of clients per thread (-c) |

title: Test results

title: Monitor the test results

text:
You can either monitor the results in the **Metrics** tab of the Cluster Manager UI or with the `memtier_benchmark` output.  However, be aware that:

- The memtier_benchmark results include the network latency between the load generator instance and the cluster instances.

- The metrics shown in the Cluster Manager UI do _not_ include network latency.

title: Expected results

text:
You should expect to see an average throughput of:

- Around 160,000 ops/sec when testing without replication (i.e. Four master shards)
- Around 115,000 ops/sec when testing with enabled replication (i.e. 2 master and 2 replica shards)

In both cases, the average latency should be below one millisecond.

code:
$ memtier_benchmark -s $DB_HOST -p $DB_PORT --hide-histogram
--key-maximum=$N -n allkeys -d 500 --key-pattern=P:P --ratio=1:0

section_id: populate-the-benchmark-dataset

code:
$ memtier_benchmark  -s $DB_HOST -p $DB_PORT --hide-histogram
--key-minimum=27250000 --key-maximum=47750000 -n allkeys
--key-pattern=P:P --ratio=0:1

section_id: with-replication-centralize-with-repl

code:
$ memtier_benchmark  -s $DB_HOST -p $DB_PORT --hide-histogram
--key-minimum=54500000 --key-maximum=95500000 -n allkeys
--key-pattern=P:P --ratio=0:1

section_id: without-replication-centralize-wo-repl

code:
$ memtier_benchmark -s $DB_HOST -p $DB_PORT --pipeline=11 -c 20 -t 1
-d 500 --key-maximum=75000000 --key-pattern=G:G --key-stddev=5125000
--ratio=1:1 --distinct-client-seed --randomize --test-time=600
--run-count=1 --out-file=test.out

section_id: generate-load

code:
$ memtier_benchmark -s $DB_HOST -p $DB_PORT --pipeline=24 -c 20 -t 1
-d 500 --key-maximum=150000000 --key-pattern=G:G --key-stddev=10250000
--ratio=1:1 --distinct-client-seed --randomize --test-time=600
--run-count=1 --out-file=test.out


title: Redis Flex and Auto Tiering Metrics

title: Content

text:
The following additional metrics for [Redis Flex and Auto Tiering ]() databases are available in the Redis Software Cluster Manager UI.

#### % Values in RAM

Percent of keys whose values are stored in RAM.

A low percentage alert means most of the RAM is used for holding keys and not much RAM is available for values. This can be due to a high number of small keys or a few large keys. Inserting more keys might cause the database to run out of memory.

If the percent of values in RAM is low for a subset of the database's shards, it might also indicate an unbalanced database.

**Components measured**: Database and Shard

#### Values in flash

Number of keys with values stored in flash, not including [replication]().

**Components measured**: Database and Shard

#### Values in RAM

Number of keys with values stored in RAM, not including [replication]().

**Components measured**: Database and Shard

#### Flash key-value operations

Number of operations on flash key values (read + write + del) per second.

**Components measured**: Node

#### Flash bytes/sec

Number of total bytes read and written per second on flash memory.

**Components measured**: Cluster, Node, Database, and Shard

#### Flash I/O operations/sec

Number of input/output operations per second on the flash storage device.

**Components measured**: Cluster and Node

#### RAM:Flash access ratio

Ratio between logical Redis key value operations and actual flash key value operations.

**Components measured**: Database and Shard

#### RAM hit ratio

Ratio of requests processed directly from RAM to total number of requests processed.

**Components measured**: Database and Shard

#### Used flash

Total amount of memory used to store values in flash.

**Components measured**: Database and Shard

#### Free flash

Amount of free space on flash storage.

**Components measured**: Cluster and Node

#### Flash fragmentation

Ratio between the used logical flash memory and the physical flash memory that is used.

**Components measured**: Database and Shard

#### Used RAM

Total size of data stored in RAM, including keys, values, overheads, and [replication]() (if enabled).

**Components measured**: Database and Shard

#### RAM dataset overhead

Percentage of the [RAM limit](#ram-limit) that is used for anything other than values, such as key names, dictionaries, and other overheads.

**Components measured**: Database and Shard

#### RAM limit

Maximum amount of RAM that can be used in bytes.

**Components measured**: Database

#### RAM usage

Percentage of the [RAM limit](#ram-limit) used.

**Components measured**: Database

#### Storage engine usage

Total count of shards used, filtered by the sorage engine (Speedb / RockSB) per given database.

**Components measured**: Database, Shards

#### Calculated metrics

These RoF statistics can be calculated from other metrics.

- RoF average key size with overhead

    ([ram_dataset_overhead](#ram-dataset-overhead) * [used_ram](#used-ram))
                    / ([total_keys]() * 2)

- RoF average value size in RAM

    ((1 - [ram_dataset_overhead](#ram-dataset-overhead)) * [used_ram](#used-ram)) / ([values_in_ram](#values-in-ram) * 2)

- RoF average value size in flash

    [used_flash](#used-flash) / [values_in_flash](#values-in-flash)


title: Database operations metrics

title: Overview

text: The following metrics are available in the Redis Software Cluster Manager UI.

title: Evicted objects/sec

text:
Number of objects evicted from the database per second.

Objects are evicted from the database according to the [eviction policy]().

Object information is not measured during [shard migration]().

**Components measured**: Database and Shard

title: Expired objects/sec

text:
Number of expired objects per second.

Object information is not measured during [shard migration]().

**Components measured**: Database and Shard

title: Hit ratio

text:
Ratio of the number of operations on existing keys out of the total number of operations.

**Components measured**: Database and Shard

title: Read misses/sec

text:
The number of [read operations](#readssec) per second on keys that do not exist.

Read misses are not measured during [shard migration]().

**Components measured**: Database

title: Write misses/sec

text:
Number of [write operations](#writessec) per second on keys that do not exist.

Write misses are not measured during [shard migration]().

**Components measured**: Database and Shard

title: Latency

text:
The total amount of time between sending a Redis operation and receiving a response from the database.

The graph shows average, minimum, maximum, and last latency values for all latency metrics.

**Components measured**: Database

title: Reads latency

text:
[Latency](#latency) of [read operations](#readssec).

**Components measured**: Database

title: Writes latency

text:
[Latency](#latency) per [write operation](#writessec).

**Components measured**: Database

title: Other commands latency

text:
[Latency](#latency) of [other operations](#other-commandssec).

**Components measured**: Database

title: Ops/sec

text:
Number of total operations per second, which includes [read operations](#readssec), [write operations](#writessec), and [other operations](#other-commandssec).

**Components measured**: Cluster, Node, Database, and Shard

title: Reads/sec

text:
Number of total read operations per second.

To find out which commands are read operations, run the following command with [`redis-cli`]():

[code example]

**Components measured**: Database

title: Writes/sec

text:
Number of total write operations per second.

To find out which commands are write operations, run the following command with [`redis-cli`]():

[code example]

**Components measured**: Database

#### Pending writes min

Minimum number of write operations queued per [Active-Active]() replica database.

#### Pending writes max

Maximum number of write operations queued per [Active-Active]() replica database.

title: Other commands/sec

text:
Number of operations per second that are not [read operations](#readssec) or [write operations](#writessec).

Examples of other operations include [PING](), [AUTH](), and [INFO]().

**Components measured**: Database

title: Total keys

text:
Total number of keys in the dataset.

Does not include replicated keys, even if [replication]() is enabled.

Total keys is not measured during [shard migration]().

**Components measured**: Database

code: ACL CAT read

section_id: reads-sec

code: ACL CAT write

section_id: writes-sec


title: Real-time metrics

summary: V1 metrics available to Prometheus.

title: Prometheus metrics v1

summary: Transition from v1 metrics to v2 PromQL equivalents.

title: Transition from Prometheus v1 to Prometheus v2

summary: V2 metrics available to Prometheus as of Redis Software version 7.8.2.

title: Prometheus metrics v2

title: Database operations metrics

title: Redis Flex and Auto Tiering Metrics

title: Resource usage metrics

title: Cluster manager metrics

text:
In the Redis Software Cluster Manager UI, you can see real-time performance metrics for clusters, nodes, databases, and shards, and configure alerts that send notifications based on alert parameters. Select the **Metrics** tab to view the metrics for each component. For more information, see [Monitoring with metrics and alerts]().

See the following topics for metrics definitions:
- [Database operations]() for database metrics
- [Resource usage]() for resource and database usage metrics
- [Auto Tiering]() for additional metrics for [Auto Tiering ]() databases

title: Prometheus metrics

text:
To collect and display metrics data from your databases and other cluster components,
you can connect your [Prometheus](https://prometheus.io/) and [Grafana](https://grafana.com/) server to your Redis Software cluster. We recommend you use Prometheus and Grafana to view metrics history and trends.

See [Prometheus integration]() to learn how to connect Prometheus and Grafana to your Redis Software database.

The new metrics stream engine that exposes the v2 Prometheus scraping endpoint at `https://<IP>:8070/v2` is generally available as of Redis Software version 8.0.
This new engine exports all time-series metrics to external monitoring tools such as Grafana, DataDog, NewRelic, and Dynatrace using Prometheus.

The new engine enables real-time monitoring, including full monitoring during maintenance operations, providing full visibility into performance during events such as shards' failovers and scaling operations.

For a list of available metrics, see the following references:

- [Prometheus metrics v1]()

- [Prometheus metrics v2]()

If you are already using the existing scraping endpoint for integration, follow [this guide]() to transition and try the new engine. It is possible to scrape both existing and new endpoints simultaneously, allowing advanced dashboard preparation and a smooth transition.

title: Limitations

role: limits

title: Shard limit

text: Metrics information is not shown for clusters with more than 128 shards. For large clusters, we recommend you use [Prometheus and Grafana]() to view metrics.

title: Metrics not shown during shard migration

text:
The following metrics are not measured during [shard migration]() when using the [internal monitoring systems](). If you view these metrics while resharding, the graph will be blank.

- [Evicted objects/sec]()
- [Expired objects/sec]()
- [Read misses/sec]()
- [Write misses/sec]()
- [Total keys]()
- [Incoming traffic]()
- [Outgoing traffic]()
- [Used memory]()

This limitation does not apply to the new [metrics stream engine]().


title: Prometheus metrics v1

summary: V1 metrics available to Prometheus.

title: Content

text:
You can integrate Redis Software with Prometheus and tools such as [Grafana](), [Datadog](), [Dynatrace](), or [New Relic]() to create dashboards for important metrics.

As of Redis Software version 7.8.2, v1 metrics are deprecated but still available. For help transitioning from v1 metrics to v2 PromQL, see [Prometheus v1 metrics and equivalent v2 PromQL]().


title: Content

text:
You can integrate Redis Software with Prometheus and tools such as [Grafana](), [Datadog](), [Dynatrace](), or [New Relic]() to create dashboards for important metrics.

As of Redis Software version 7.8.2, [PromQL (Prometheus Query Language)](https://prometheus.io/docs/prometheus/latest/querying/basics/) metrics are available. V1 metrics are deprecated but still available.

To transition from v1 metrics to v2 metrics, you need to change the `metrics_path` in your Prometheus configuration file from `/` to `/v2` to use the new scraping endpoint.

Here's an example of the updated scraping configuration in `prometheus.yml`:

[code example]

It is possible to scrape both v1 and v2 endpoints simultaneously during the transition period to prepare dashboards and ensure a smooth transition.

You can use the following tables to transition from v1 metrics to equivalent v2 PromQL. For a list of all available v2 metrics, see [Prometheus metrics v2]().

code:
scrape_configs:
  # Scrape Redis Software
  - job_name: redis-enterprise
    scrape_interval: 30s
    scrape_timeout: 30s
    metrics_path: /v2
    scheme: https
    tls_config:
      insecure_skip_verify: true
    static_configs:
      - targets: ["<cluster_name>:8070"]

section_id: content


title: Prometheus metrics v2

title: Content

text:
You can integrate Redis Software with Prometheus and tools such as [Grafana](), [Datadog](), [Dynatrace](), or [New Relic]() to create dashboards for important metrics.

The v2 metrics in the following tables are available as of Redis Software version 7.8.0. For help transitioning from v1 metrics to v2 PromQL, see [Prometheus v1 metrics and equivalent v2 PromQL]().

The v2 scraping endpoint also exposes metrics for `node_exporter` version 1.8.1. For more information, see the [Prometheus node_exporter GitHub repository](https://github.com/prometheus/node_exporter).


title: Resource usage metrics

title: Overview

text: The following metrics are available in the Redis Software Cluster Manager UI.

title: Connections

text:
Number of connections to the database.

**Components measured**: Cluster, Node, and Database

title: CPU usage

text:
Percent of the node CPU used.

**Components measured**:  Cluster and Node

title: Main thread CPU usage

text:
Percent of the CPU used by the main thread.

**Components measured**: Database and Shard

title: Fork CPU usage

text:
CPU usage of Redis child forks.

**Components measured**: Database and Shard

title: Total CPU usage

text:
Percent usage of the CPU for all nodes.

**Components measured**: Database

title: Free disk space

text:
Remaining unused disk space.

**Components measured**:  Cluster and Node

title: Memory

title: Used memory

text:
Total memory used by the database, including RAM, [Flash]() (if enabled), and [replication]() (if enabled).

Used memory does not include:

1. Fragmentation overhead - The ratio of memory seen by the operating system to memory allocated by Redis
2. Replication buffers at the primary nodes - Set to 10% of used memory and is between 64 MB and 2048 MB
3. Memory used by Lua scripts - Does not exceed 1 MB
4. Copy on Write (COW) operation that can be triggered by:
    - A full replication process
    - A database snapshot process
    - AOF rewrite process

Used memory is not measured during [shard migration]().

Additional factors for [Active-Active databases]():

- By default, the [Active-Active replication backlog](), used for synchronization between clusters or regions, is set to 1% of the database size.

- Active-Active databases have a lower threshold for activating the eviction policy, because it requires propagation to all participating clusters. The eviction policy starts to evict keys when one of the Active-Active instances reaches 80% of its memory limit.

**Components measured**: Database and Shard

title: Free RAM

text:
Available RAM for System use.

**Components measured**:  Cluster and Node

title: Memory limit

text:
Memory size limit of the database, enforced on the [used memory](#used-memory).

**Components measured**: Database

title: Memory usage

text:
Percent of memory used by Redis out of the [memory limit](#memory-limit).

**Components measured**: Database

title: Traffic

title: Incoming traffic

text:
Total incoming traffic to the database in bytes/sec.

All incoming traffic is not measured during [shard migration]().

**Components measured**: Cluster, Node and Database

#### Incoming traffic compressed

Total incoming compressed traffic (in bytes/sec) per [Active-Active]() replica database.

#### Incoming traffic uncompressed

Total incoming uncompressed traffic (in bytes/sec) per [Active-Active]() replica database.

title: Outgoing traffic

text:
Total outgoing traffic from the database in bytes per second.

Outgoing traffic is not measured during [shard migration]().

**Components measured**: Cluster, Node and Database


title: Redis Software API


title: Encrypt REST API requests

title: Require HTTPS for API endpoints

text:
By default, the Redis Software API supports communication over HTTP and HTTPS. However, you can turn off support for HTTP to ensure that API requests are encrypted.

Before you turn off HTTP support, be sure to migrate any scripts or proxy configurations that use HTTP to the encrypted API endpoint to prevent broken connections.

To turn off HTTP support for API endpoints, run:

[code example]

code: rladmin cluster config http_support disabled

section_id: require-https-for-api-endpoints


title: REST API

summary: Redis Software REST API quick start

title: Redis Software REST API quick start

title: Encrypt REST API requests

summary: Documents the requests supported by the Redis Software REST API calls.

title: Redis Software REST API requests

summary: Documents the objects used with Redis Software REST API calls.

title: Redis Software REST API objects

summary: Documents the permissions used with Redis Software REST API calls.

title: Permissions

title: Redis Software API

title: Overview

text:
Redis Software provides a REST API to help you automate common tasks.

Here, you'll find the details of the API and how to use it.

For more info, see:

- Supported [request endpoints](), organized by path
- Supported [objects](), both request and response
- Built-in roles and associated [permissions]()
- [Redis Software REST API quick start]() with examples

title: Authentication

role: security

text:
Authentication to the Redis Software API occurs via [Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication). Provide your username and password as the basic auth credentials.

If the username and password is incorrect or missing, the request will fail with a [`401 Unauthorized`](https://www.rfc-editor.org/rfc/rfc9110.html#name-401-unauthorized) status code.

Example request using [cURL](https://curl.se/):

[code example]

For more examples, see the [Redis Software REST API quick start]().

title: Permissions

text:
By default, the admin user is authorized for access to all endpoints. Use [role-based access controls]() and [role permissions]() to manage access.

If a user attempts to access an endpoint that is not allowed in their role, the request will fail with a [`403 Forbidden`](https://www.rfc-editor.org/rfc/rfc9110.html#name-403-forbidden) status code. For more details on which user roles can access certain endpoints, see [Permissions]().

title: Certificates

text: The Redis Software REST API uses [Self-signed certificates]() to ensure the product is secure. When you use the default self-signed certificates, the HTTPS requests will fail with `SSL certificate problem: self signed certificate` unless you turn off SSL certificate verification.

title: Ports

text:
All calls must be made over SSL to port 9443. For the API to work, port 9443 must be exposed to incoming traffic or mapped to a different port.

If you are using a [Redis Software Docker image](), run the following command to start the Docker image with port 9443 exposed:

[code example]

title: Versions

text:
All API requests are versioned in order to minimize the impact of backwards-incompatible API changes and to coordinate between different versions operating in parallel.

Specify the version in the request [URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier), as shown in the following table:

| Request path | Description |
|--------------|-------------|
| POST `/v1/bdbs` | A version 1 request for the `/bdbs` endpoint. |
| POST `/v2/bdbs` | A version 2 request for the `/bdbs` endpoint. |

When an endpoint supports multiple versions, each version is documented on the corresponding endpoint.  For example, the [bdbs request]() page documents POST requests for [version 1]() and [version 2]().

title: Headers

title: Requests

text:
Redis Software REST API requests support the following HTTP headers:

| Header | Supported/Required Values |
|--------|---------------------------|
| Accept | `application/json` |
| Content-Length | Length (in bytes) of request message |
| Content-Type | `application/json` (required for PUT or POST requests) |

If the client specifies an invalid header, the request will fail with a [`400 Bad Request`](https://www.rfc-editor.org/rfc/rfc9110.html#name-400-bad-request) status code.

title: Responses

role: returns

text:
Redis Software REST API responses support the following HTTP headers:

| Header | Supported/Required Values |
|--------|---------------------------|
| Content-Type | `application/json` |
| Content-Length | Length (in bytes) of response message |

title: JSON requests and responses

text:
The Redis Software REST API uses [JavaScript Object Notation (JSON)](http://www.json.org) for requests and responses. See the [RFC 4627 technical specifications](http://www.ietf.org/rfc/rfc4627.txt) for additional information about JSON.

Some responses may have an empty body but indicate the response with standard [HTTP codes](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).

Both requests and responses may include zero or more objects.

If the request is for a single entity, the response returns a single JSON object or none. If the request is for a list of entities, the response returns a JSON array with zero or more elements.

If you omit certain JSON object fields from a request, they may be assigned default values, which often indicate that these fields are not in use.

title: Response types and error codes

text:
[HTTP status codes](https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes) indicate the result of an API request. This can be `200 OK` if the server accepted the request, or it can be one of many error codes.

The most common responses for a Redis Software API request are:

| Response | Condition/Required handling |
|----------|-----------------------------|
| [200 OK](https://www.rfc-editor.org/rfc/rfc9110.html#name-200-ok) | Success |
| [400 Bad Request](https://www.rfc-editor.org/rfc/rfc9110.html#name-400-bad-request) | The request failed, generally due to a typo or other mistake. |
| [401 Unauthorized](https://www.rfc-editor.org/rfc/rfc9110.html#name-401-unauthorized) | The request failed because the authentication information was missing or incorrect. |
| [403 Forbidden](https://www.rfc-editor.org/rfc/rfc9110.html#name-403-forbidden) | The user cannot access the specified [URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier). |
| [404 Not Found](https://www.rfc-editor.org/rfc/rfc9110.html#name-404-not-found) | The [URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier) does not exist. |
| [503 Service Unavailable](https://www.rfc-editor.org/rfc/rfc9110.html#name-503-service-unavailable) | The node is not responding or is not a member of the cluster. |
| [505 HTTP Version Not Supported](https://www.rfc-editor.org/rfc/rfc9110.html#name-505-http-version-not-suppor) | An unsupported `x-api-version` was used. See [versions](#versions). |

Some endpoints return different response codes. The request references for these endpoints document these special cases.

code:
curl -u "demo@redislabs.com:password" \
    https://localhost:9443/v1/bdbs

section_id: authentication

code: docker run -p 9443:9443 redislabs/redis

section_id: ports


title: Action object

summary: An object that represents cluster actions

title: Content

text:
The cluster allows you to invoke general maintenance actions such as rebalancing or taking a node offline by moving all of its entities to other nodes.

Actions are implemented as tasks in the cluster. Every task has a unique `task_id` assigned by the cluster, a task name which describes the task, a status, and additional task-specific parameters.

The REST API provides a simplified interface that allows callers to invoke actions and query their status without a specific `task_id`.

The action lifecycle is based on the following status and status transitions:

[code example]

| Name | Type/Value | Description |
|------|------------|-------------|
| progress        | float <nobr>(range: 0-100)</nobr> | Represents percent completed (As of v7.4.2, the return value type changed to 'float' to provide improved progress indication) |
| status          | queued | Requested operation and added it to the queue to await processing |
|                 | starting | Picked up operation from the queue and started processing |
|                 | running | Currently executing operation |
|                 | cancelling | Operation cancellation is in progress |
|                 | cancelled | Operation cancelled |
|                 | aborted | Operation aborted |
|                 | completed | Operation completed |
|                 | failed | Operation failed |

When a task fails, the `error_code` and `error_message` fields describe the error.

Possible `error_code` values:

 Code                    | Description                                    |
|-------------------------|------------------------------------------------|
| internal_error          | An internal error that cannot be mapped to a more precise error code
| insufficient_resources  | The cluster does not have sufficient resources to complete the required operation

code:
stateDiagram-v2
    queued --> starting
    queued --> cancelled
    starting --> running
    starting --> aborted
    running --> completed
    running --> cancelling
    running --> failed
    running --> aborted
    cancelling --> cancelled


title: Alert object

summary: An object that contains alert info

title: Content

text:
You can view, configure, and enable various alerts for the cluster.

Alerts are bound to a cluster object (such as a [BDB]() or [node]()), and the cluster's state determines whether the alerts turn on or off.

  Name  | Type/Value | Description | Writable
|-------|------------|-------------|----------|
| change_time | string | Timestamp when alert state last changed | |
| change_value | object | Contains data relevant to the evaluation time when the alert went on/off (thresholds, sampled values, etc.) | |
| enabled | boolean | If true, alert is enabled | x |
| severity | 'DEBUG'
'INFO'
'WARNING'
'ERROR'
'CRITICAL' | The alert's severity | |
| state | boolean | If true, alert is currently triggered | |
| threshold | string | Represents an alert threshold when applicable | x |


title: BDB backup/export location object

summary: Documents the bdb backup_location/export_location object used with Redis Enterprise Software REST API calls.

title: Overview

text:
You can back up or export a database's dataset to the following types of locations:

-   FTP/S
-   SFTP
-   Amazon S3
-   Amazon S3 or S3-compatible storage
-   Google Cloud Storage
-   Microsoft Azure Storage
-   NAS/Local Storage

title: Basic parameters

text:
For all backup/export location objects, you need to specify the location type via the `type` field.

| Location type | "type" value |
|---------------|--------------|
| FTP/S | "url" |
| SFTP | "sftp" |
| Amazon S3 | "s3" |
| Google Cloud Storage | "gs" |
| Microsoft Azure Storage | "abs" |
| NAS/Local Storage | "mount_point" |

title: Location-specific parameters

text: Any additional required parameters may differ based on the backup/export location type.

title: FTP

text:
| Key name | Type | Description |
|----------|------|-------------|
| url | string | A URI that represents a FTP/S location with the following format: `ftp://user:password@host:port/path/`. The user and password can be omitted if not needed. |

title: SFTP

text:
| Key name | Type | Description |
|----------|------|-------------|
| key | string | SSH private key to secure the SFTP server connection. If you do not specify an SSH private key, the autogenerated private key of the cluster is used, and you must add the SSH public key of the cluster to the SFTP server configuration. (optional) |
| sftp_url | string | SFTP URL in the format: `sftp://user:password@host[:port][/path/]`. The default port number is 22 and the default path is '/'. |

title: AWS S3

text:
| Key name | Type | Description |
|----------|------|-------------|
| access_key_id | string | The AWS Access Key ID with access to the bucket |
| bucket_name | string | S3 bucket name |
| region_name | string | Amazon S3 region name (optional) |
| secret_access_key | string | The AWS Secret Access Key that matches the Access Key ID |
| subdir | string | Path to the backup directory in the S3 bucket (optional) |

You can also connect to a storage service that uses the S3 protocol but is not hosted by Amazon AWS. The storage service must have a valid SSL certificate.

To connect to an S3-compatible storage location:

1. Configure the S3 URL with [`rladmin cluster config`]():

    [code example]

    Replace `<URL>` with the hostname or IP address of the S3-compatible storage location.

1. Configure the S3 CA certificate:

    [code example]

    Replace `<filepath>` with the location of the S3 CA certificate `ca.pem`.

title: Google Cloud Storage

text:
| Key name | Type | Description |
|----------|------|-------------|
| bucket_name | string | Cloud Storage bucket name |
| client_email | string | Email address for the Cloud Storage client ID |
| client_id | string | Cloud Storage client ID with access to the Cloud Storage bucket |
| private_key | string | Cloud Storage private key that matches the private key ID |
| private_key_id | string | Cloud Storage private key ID with access to the Cloud Storage bucket |
| subdir | string | Path to the backup directory in the Cloud Storage bucket (optional) |

title: Azure Blob Storage

text:
| Key name | Type | Description |
|----------|------|-------------|
| account_key | string | Access key for the storage account |
| account_name | string | Storage account name with access to the container |
| container | string | Blob Storage container name |
| sas_token | string | Token to authenticate with shared access signature |
| subdir | string | Path to the backup directory in the Blob Storage container (optional) |

`account_key` and `sas_token` are mutually exclusive

title: NAS/Local Storage

text:
| Key name | Type | Description |
|----------|------|-------------|
| path | string | Path to the local mount point. You must create the mount point on all nodes, and the `redislabs:redislabs` user must have read and write permissions on the local mount point. |

code: rladmin cluster config s3_url <URL>

code: rladmin cluster config s3_ca_cert <filepath>


title: BDB dataset import sources object

summary: Documents the bdb dataset_import_sources object used with Redis Software REST API calls.

title: Overview

text:
You can import data to a database from the following location types:

-   HTTP/S
-   FTP
-   SFTP
-   Amazon S3
-   Amazon S3 or S3-compatible storage
-   Google Cloud Storage
-   Microsoft Azure Storage
-   NAS/Local Storage

The source file to import should be in the [RDB]() format. It can also be in a compressed (gz) RDB file.

Supply an array of dataset import source objects to import data from multiple files.

title: Basic parameters

text:
For all import location objects, you need to specify the location type via the `type` field.

| Location type | "type" value |
|---------------|--------------|
| FTP/S | "url" |
| SFTP | "sftp" |
| Amazon S3 | "s3" |
| Google Cloud Storage | "gs" |
| Microsoft Azure Storage | "abs" |
| NAS/Local Storage | "mount_point" |

title: Location-specific parameters

text: Any additional required parameters may differ based on the import location type.

title: FTP

text:
| Key name | Type | Description |
|----------|------|-------------|
| url | string | A URI that represents the FTP/S location with the following format: `ftp://user:password@host:port/path/`. The user and password can be omitted if not needed. |

title: SFTP

text:
| Key name | Type | Description |
|----------|------|-------------|
| key | string | SSH private key to secure the SFTP server connection. If you do not specify an SSH private key, the autogenerated private key of the cluster is used and you must add the SSH public key of the cluster to the SFTP server configuration. (optional) |
| sftp_url | string | SFTP URL in the format: `sftp://user:password@host[:port]/path/filename.rdb`. The default port number is 22 and the default path is '/'. |

title: AWS S3

text:
| Key name | Type | Description |
|----------|------|-------------|
| access_key_id | string | The AWS Access Key ID with access to the bucket |
| bucket_name | string | S3 bucket name |
| filename | string | RDB filename, including the file extension. |
| region_name | string | Amazon S3 region name (optional) |
| secret_access_key | string | The AWS Secret Access that matches the Access Key ID |
| subdir | string | Path to the backup directory in the S3 bucket (optional) |

You can also connect to a storage service that uses the S3 protocol but is not hosted by Amazon AWS. The storage service must have a valid SSL certificate.

To connect to an S3-compatible storage location:

1. Configure the S3 URL with [`rladmin cluster config`]():

    [code example]

    Replace `<URL>` with the hostname or IP address of the S3-compatible storage location.

1. Configure the S3 CA certificate:

    [code example]

    Replace `<filepath>` with the location of the S3 CA certificate `ca.pem`.

title: Google Cloud Storage

text:
| Key name | Type | Description |
|----------|------|-------------|
| bucket_name | string | Cloud Storage bucket name |
| client_email | string | Email address for the Cloud Storage client ID |
| client_id | string | Cloud Storage client ID with access to the Cloud Storage bucket |
| filename | string | RDB filename, including the file extension. |
| private_key | string | Private key for the Cloud Storage matching the private key ID |
| private_key_id | string | Cloud Storage private key ID with access to the Cloud Storage bucket |
| subdir | string | Path to the backup directory in the Cloud Storage bucket (optional) |

title: Azure Blob Storage

text:
| Key name | Type | Description |
|----------|------|-------------|
| account_key | string | Access key for the storage account |
| account_name | string | Storage account name with access to the container |
| container | string | Blob Storage container name |
| filename | string | RDB filename, including the file extension. |
| sas_token | string | Token to authenticate with shared access signature |
| subdir | string | Path to the backup directory in the Blob Storage container (optional) |

`account_key` and `sas_token` are mutually exclusive

title: NAS/Local Storage

text:
| Key name | Type | Description |
|----------|------|-------------|
| path | string | Path to the locally mounted filename to import. You must create the mount point on all nodes, and the `redislabs:redislabs` user must have read permissions on the local mount point.


title: BDB object

summary: An object that represents a database

title: BDB backup/export location object

title: BDB dataset import sources object

summary: Configuration object for probabilistic data structures

title: Probabilistic data structures configuration object

summary: Configuration object for query performance factor

title: Query performance factor object

summary: Documents the bdb replica_sources status field used with Redis Software REST API calls.

title: BDB replica sources status field

summary: Documents the bdb replica_sync field used with Redis Software REST API calls.

title: BDB replica sync field

summary: Configuration object for search and query.

title: Search and query configuration object

summary: Documents the snapshot_policy object used with Redis Software REST API calls.

title: Snapshot policy object

summary: Documents the bdb status field used with Redis Software REST API calls.

title: BDB status field

summary: Documents the syncer_sources object used with Redis Software REST API calls.

title: Syncer sources object

summary: Configuration object timeseries.

title: Timeseries configuration object

title: Content

text:
An API object that represents a managed database in the cluster.

| Name | Type/Value & Description |
|------|-------------------------|
| uid | integer; Cluster unique ID of database. Can be set during creation but cannot be updated. |
| account_id | integer; SM account ID |
| action_uid | string; Currently running action's UID (read-only) |
| active_defrag_cycle_max | integer, (range: 1-99); Maximum CPU percentage used for defragmentation when the upper threshold is reached |
| active_defrag_cycle_min | integer, (range: 1-99) (default: 1); Minimal CPU percentage used for defragmentation when the lower threshold is reached |
| active_defrag_ignore_bytes | string (default: 100mb); Minimum amount of fragmentation waste to start active defragmentation |
| active_defrag_max_scan_fields | integer (default: 1000); Maximum number of set/hash/zset/list fields that will be processed from the main dictionary scan |
| active_defrag_threshold_lower | integer, (range: 0-1000) (default: 10); Minimum percentage of fragmentation to start active defragmentation |
| active_defrag_threshold_upper | integer, (range: 0-1000) (default: 100); Maximum percentage of fragmentation at which maximum effort is used |
| activedefrag | Enable or turn off active defragmentation functionality.
Values:
'yes'
**'no'** |
| aof_policy | Policy for Append-Only File data persistence
Values:
**'appendfsync-every-sec'**
'appendfsync-always' |
| authentication_admin_pass | string; Password for administrative access to the BDB (used for SYNC from the BDB) |
| authentication_redis_pass | string; Redis AUTH password authentication.
Use for Redis databases only.  Ignored for memcached databases. (deprecated as of Redis Software v7.2, replaced with multiple passwords feature in version 6.0.X) |
| authentication_sasl_pass | string; Binary memcache SASL password |
| authentication_sasl_uname | string; Binary memcache SASL username (pattern does not allow special characters &,\<,>,") |
| authentication_ssl_client_certs | [{
  "client_cert": string
}, ...] List of authorized client certificates
**client_cert**: X.509 PEM (base64) encoded certificate |
| authentication_ssl_crdt_certs | [{
  "client_cert": string
}, ...] List of authorized CRDT certificates
**client_cert**: X.509 PEM (base64) encoded certificate |
| authorized_names | array of strings; Additional certified names (deprecated as of Redis Software v6.4.2; use authorized_subjects instead) |
| authorized_subjects | [{
  "CN": string,
  "O": string,
  "OU": [array of strings],
  "L": string,
  "ST": string,
  "C": string
}, ...] A list of valid subjects used for additional certificate validations during TLS client authentication. All subject attributes are case-sensitive.
**Required subject fields**:
"CN" for Common Name
**Optional subject fields:**
"O" for Organization
"OU" for Organizational Unit (array of strings)
"L" for Locality (city)
"ST" for State/Province
"C" for 2-letter country code |
| auto_shards_balancing | boolean (default: false); Automatically balance database shards. This field is for future use and should not be changed. |
| auto_shards_balancing_grace_period | integer (default: 120); Time to wait before auto sharding is initiated. This field is for future use and should not be changed. |
| auto_upgrade | boolean (default: false); Upgrade the database automatically after a cluster upgrade |
| avoid_nodes | array of strings; Cluster node UIDs to avoid when placing the database's shards and binding its endpoints |
| background_op | Deprecated as of Redis Software v7.8.2. Use [`GET /v1/actions/bdb/<bdb_uid>`]() instead.
[{
  "status": string,
  "name": string,
  "error": object,
  "progress": number
}, ...] (read-only); **progress**: Percent of completed steps in current operation |
| backup | boolean (default: false); Policy for periodic database backup |
| backup_failure_reason | Reason of last failed backup process (read-only)
Values:
'no-permission'
'wrong-file-path'
'general-error' |
| backup_history | integer (default: 0); Backup history retention policy (number of days, 0 is forever) |
| backup_interval | integer; Interval in seconds in which automatic backup will be initiated |
| backup_interval_offset | integer; Offset (in seconds) from round backup interval when automatic backup will be initiated (should be less than backup_interval) |
| backup_location | [complex object]();  Target for automatic database backups.
Call `GET` `/jsonschema` to retrieve the object's structure. |
| backup_progress | number, <nobr>(range: 0-100)</nobr>;  Database scheduled periodic backup progress (percentage) (read-only) |
| backup_status | Status of scheduled periodic backup process (read-only)
Values:
'exporting'
'succeeded'
'failed' |
| bigstore | boolean (default: false);  Database bigstore option |
| bigstore_ram_size | integer (default: 0);  Memory size of bigstore RAM part. |
| bigstore_ram_weights | [{
  "shard_uid": integer,
  "weight": number
}, ...] List of shard UIDs and their bigstore RAM weights;
 **shard_uid**: Shard UID;
 **weight**: Relative weight of RAM distribution |
| bigstore_version | The database's `bigstore_version`:
• `1` for Auto Tiering (Redis on Flash version 1). Default version.
• `2` for Redis Flex (Redis on Flash version 2) on databases that support it. Can only be used with the `speedb` driver.

You can only choose the `bigstore_version` for databases with Redis version 7.4. Database versions earlier than 7.4 use `bigstore_version` `1`. Database versions 8.0 and later use `bigstore_version` `2`. |
| client_cert_subject_validation_type | Enables additional certificate validations that further limit connections to clients with valid certificates during TLS client authentication.
Values:
**disabled**: Authenticates clients with valid certificates. No additional validations are enforced.
**san_cn**: A client certificate is valid only if its Common Name (CN) matches an entry in the list of valid subjects. Ignores other Subject attributes.
**full_subject**: A client certificate is valid only if its Subject attributes match an entry in the list of valid subjects. |
| conns | integer (default 5);  Number of internal proxy connections |
| conns_global_maximum_dedicated | integer (default: 0); Defines the maximum number of dedicated server connections for a given database. The total number across all workers. The default is 0 for unlimited. |
| conns_minimum_dedicated | integer (default: 2); Number of dedicated server connections the DMC has per worker per shard |
| conns_type | Connections limit type
Values:
**‘per-thread’**
‘per-shard’ |
| crdt | boolean (default: false);  Use CRDT-based data types for multi-master replication |
| crdt_causal_consistency | boolean (default: false);  Causal consistent CRDB. |
| crdt_config_version | integer;  Replica-set configuration version, for internal use only. |
| crdt_featureset_version | integer;  CRDB active FeatureSet version |
| crdt_ghost_replica_ids | string;  Removed replicas IDs, for internal use only. |
| crdt_guid | string;  GUID of CRDB this database belongs to, for internal use only. |
| crdt_modules | string;  CRDB modules information. The string representation of a JSON list, containing hashmaps. |
| crdt_protocol_version | integer;  CRDB active Protocol version |
| crdt_repl_backlog_size | string;  Active-Active replication backlog size ('auto' or size in bytes) |
| crdt_replica_id | integer;  Local replica ID, for internal use only. |
| crdt_replicas | string;  Replica set configuration, for internal use only. |
| crdt_sources | array of [syncer_sources]() objects; Remote endpoints/peers of CRDB database to sync from. See the 'bdb -\> replica_sources' section |
| crdt_sync | Enable, disable, or pause syncing from specified crdt_sources. Applicable only for Active-Active databases. See [replica_sync]() for more details.
Values:
'enabled'
 **'disabled'**
'paused'
'stopped' |
| crdt_sync_connection_alarm_timeout_seconds | integer (default: 0); If the syncer takes longer than the specified number of seconds to connect to an Active-Active database, raise a connection alarm |
| crdt_sync_dist | boolean;  Enable/disable distributed syncer in master-master |
| crdt_syncer_auto_oom_unlatch | boolean (default: true);  Syncer automatically attempts to recover synchronisation from peers after this database throws an Out-Of-Memory error. Otherwise, the syncer exits |
| crdt_xadd_id_uniqueness_mode | XADD strict ID uniqueness mode. CRDT only.
Values:
‘liberal’
**‘strict’**
‘semi-strict’ |
| created_time | string;  The date and time the database was created (read-only) |
| data_internode_encryption | boolean;  Should the data plane internode communication for this database be encrypted |
| data_persistence | Database on-disk persistence policy. For snapshot persistence, a [snapshot_policy]() must be provided
Values:
**'disabled'**
'snapshot'
'aof' |
| dataset_import_sources | [complex object]();  Array of source file location description objects to import from when performing an import action. This is write-only and cannot be read after set.
Call `GET /v1/jsonschema` to retrieve the object's structure. |
| db_conns_auditing | boolean;  Enables/deactivates [database connection auditing]() |
| default_user | boolean (default: true); Allow/disallow a default user to connect |
| disabled_commands | string (default: ); Redis commands which are disabled in db |
| disconnect_clients_on_password_removal | boolean (default: false); Controls whether client connections using removed, revoked, or rotated passwords are actively disconnected |
| dns_address_master | string;  Database private address endpoint FQDN (read-only) (deprecated as of Redis Software v4.3.3) |
| email_alerts | boolean (default: false);  Send email alerts for this DB |
| endpoint | string;  Latest bound endpoint. Used when reconfiguring an endpoint via update |
| endpoint_ip | complex object;  External IP addresses of node hosting the BDB's endpoint. `GET` `/jsonschema` to retrieve the object's structure. (read-only) (deprecated as of Redis Software v4.3.3) |
| endpoint_node | integer;  Node UID hosting the BDB's endpoint (read-only) (deprecated as of Redis Software v4.3.3) |
| endpoints | array; List of database access endpoints (read-only)
**uid**: Unique identification of this source
**dns_name**: Endpoint’s DNS name
**port**: Endpoint’s TCP port number
**addr**: Endpoint’s accessible addresses
**proxy_policy**: The policy used for proxy binding to the endpoint
**exclude_proxies**: List of proxies to exclude
**include_proxies**: List of proxies to include
**addr_type**: Indicates if the endpoint is based on internal or external IPs
**oss_cluster_api_preferred_ip_type**: Indicates preferred IP type in the OSS cluster API: internal/external
**oss_cluster_api_preferred_endpoint_type**: Indicates preferred endpoint type in the OSS cluster API: ip/hostname |
| enforce_client_authentication | Require authentication of client certificates for SSL connections to the database. If set to 'enabled', a certificate should be provided in either authentication_ssl_client_certs or authentication_ssl_crdt_certs
Values:
**'enabled'**
'disabled' |
| eviction_policy | Database eviction policy (Redis style).
Values:
'volatile-lru'
'volatile-ttl'
'volatile-random'
'allkeys-lru'
'allkeys-random'
'noeviction'
'volatile-lfu'
'allkeys-lfu'
**Redis DB default**: 'volatile-lru'
**memcached DB default**: 'allkeys-lru' |
| export_failure_reason | Reason of last failed export process (read-only)
Values:
'no-permission'
'wrong-file-path'
 'general-error' |
| export_progress | number, <nobr>(range: 0-100)</nobr>; Database manually triggered export progress (percentage) (read-only) |
| export_status | Status of manually triggered export process (read-only)
Values:
'exporting'
'succeeded'
'failed' |
| generate_text_monitor | boolean;  Enable/disable generation of syncer monitoring information |
| gradual_src_max_sources | integer (default: 1); Sync a maximum N sources in parallel (gradual_src_mode should be enabled for this to take effect) |
| gradual_src_mode | Indicates if gradual sync (of sync sources) should be activated
Values:
'enabled'
'disabled' |
| gradual_sync_max_shards_per_source | integer (default: 1); Sync a maximum of N shards per source in parallel (gradual_sync_mode should be enabled for this to take effect) |
| gradual_sync_mode | Indicates if gradual sync (of source shards) should be activated ('auto' for automatic decision)
Values:
'enabled'
'disabled'
'auto' |
| hash_slots_policy | The policy used for hash slots handling
Values:
 **'legacy'**: slots range is '1-4096'
 **'16k'**: slots range is '0-16383' |
| implicit_shard_key | boolean (default: false); Controls the behavior of what happens in case a key does not match any of the regex rules.
 **true**: if a key does not match any of the rules, the entire key will be used for the hashing function
 **false**: if a key does not match any of the rules, an error will be returned. |
| import_failure_reason | Import failure reason (read-only)
Values:
'download-error'
'file-corrupted'
'general-error'
'file-larger-than-mem-limit:\<n bytes of expected dataset>:\<n bytes configured bdb limit>'
'key-too-long'
'invalid-bulk-length'
'out-of-memory' |
| import_progress | number, <nobr>(range: 0-100)</nobr>; Database import progress (percentage) (read-only) |
| import_status | Database import process status (read-only)
Values:
'idle'
'initializing'
'importing'
'succeeded'
'failed' |
| internal | boolean (default: false); Is this a database used by the cluster internally |
| last_backup_time | string; Time of last successful backup (read-only) |
| last_changed_time | string; Last administrative configuration change (read-only) |
| last_export_time | string; Time of last successful export (read-only) |
| link_sconn_on_full_request | Feature-flag for DMC behaviour on linking client request
Values:
'enabled'
**'disabled'**
'ssl_only' |
| max_aof_file_size | integer; Maximum size for shard's AOF file (bytes). Default 300GB, (on bigstore DB 150GB) |
| max_aof_load_time | integer (default: 3600); Maximum time shard's AOF reload should take (seconds). |
| max_client_pipeline | integer (default: 200); Maximum number of pipelined commands per connection. Maximum value is 2047. |
| max_connections | integer (default: 0); Maximum number of client connections allowed (0 unlimited) |
| max_pipelined | integer (default: 2000); Determines the maximum number of commands in the proxy’s pipeline per shard connection. |
| maxclients | integer (default: 10000); The maximum number of connected clients at the same time. By default the limit is 10000 clients. |
| master_persistence | boolean (default: false); If true, persists the primary shard in addition to replica shards in a replicated and persistent database. |
| memory_size | integer (default: 0); Database memory limit (0 is unlimited), expressed in bytes. |
| metrics_export_all | boolean; Enable/disable exposing all shard metrics through the metrics exporter |
| mkms | boolean (default: true); Are MKMS (Multi Key Multi Slots) commands supported? |
| module_list | [{
  "module_id": string,
  "module_args": [
    u'string',
    u'null'],
  "module_name": string,
  "semantic_version": string
}, ...] List of modules associated with the database

**module_id**: Module UID (deprecated; use `module_name` instead)
**module_args**: Module command-line arguments (deprecated; use the module objects for [search](), [timeseries](), and [probabilistic]() instead)
**module_name**: Module's name
**semantic_version**: Module's semantic version (deprecated; use `module_args` instead)

**module_id** and **semantic_version** are optional as of Redis Software v7.4.2 and deprecated as of v7.8.2.
**module_args** is deprecated as of Redis Software v8.0. |
| mtls_allow_outdated_certs | boolean; An optional mTLS relaxation flag for certs verification |
| mtls_allow_weak_hashing | boolean; An optional mTLS relaxation flag for certs verification |
| multi_commands_opt | If set to `batch`, it reduces the overhead of transaction management by batching multiple commands into a single transaction.
Values:
**disabled**: Turns off the optimization.
**batch**: Enables the optimization.
**auto**: Uses the [cluster's `multi_commands_opt` setting](). |
| name | string; Database name. Only letters, numbers, or hyphens are valid characters. The name must start and end with a letter or number. |
| oss_cluster | boolean (default: false); OSS Cluster mode option. Cannot be enabled with `'hash_slots_policy': 'legacy'` |
| oss_cluster_api_preferred_endpoint_type | Endpoint type in the OSS cluster API
Values:
**‘ip’**
‘hostname’ |
| oss_cluster_api_preferred_ip_type | Internal/external IP type in OSS cluster API. Default value for new endpoints
Values:
**'internal'**
'external' |
| oss_sharding | boolean (default: false); An alternative to `shard_key_regex` for using the common case of the OSS shard hashing policy |
| partial_request_timeout_seconds | integer (default: 3); When a client connection sends a command, takes a server connection, and stops writing before the command is complete, it causes head-of-line blocking on this server connection. Such commands will time out after this many seconds and the client connection will be closed. |
| port | integer; TCP port on which the database is available. Generated automatically if omitted and returned as 0 |
| preemptive_drain_timeout_seconds | integer (default: 2); Timeout in seconds for preemptive drain of client connections before a shard is taken down |
| probabilistic | [complex object](); Configuration fields for probabilistic data structures. |
| proxy_policy | The default policy used for proxy binding to endpoints
Values:
'single'
'all-master-shards'
'all-nodes' |
| query_performance_factor | [complex object](); Configures query performance factor and related fields |
| rack_aware | boolean (default: false); Require the database to always replicate across multiple racks |
| recovery_wait_time | integer (default: -1); Defines how many seconds to wait for the persistence file to become available during auto recovery. After the wait time expires, auto recovery completes with potential data loss. The default `-1` means to wait forever. |
| redis_version | string; Version of the redis-server processes: e.g. 6.0, 5.0-big |
| repl_backlog_size | string; Redis replication backlog size ('auto' or size in bytes) |
| replica_read_only | boolean (default: false); If `true`, enables an Active-Passive setup where Replica Of databases only allow read operations. Only configurable during database creation and cannot be changed later. |
| replica_sconns_on_demand | Reduces DMC internode connections by at least 50%, conserving sockets, file descriptors, and KEEPALIVE traffic.
Values:
**'enabled'**
'disabled' |
| replica_sources | array of [syncer_sources]() objects; Remote endpoints of database to sync from. See the 'bdb -\> replica_sources' section |
| [replica_sync]() | Enable, disable, or pause syncing from specified replica_sources
Values:
'enabled'
 **'disabled'**
'paused'
'stopped' |
| replica_sync_connection_alarm_timeout_seconds | integer (default: 0); If the syncer takes longer than the specified number of seconds to connect to a replica, raise a connection alarm |
| replica_sync_dist | boolean; Enable/disable distributed syncer in replica-of |
| replication | boolean (default: false); In-memory database replication mode |
| resp3 | boolean (default: true); Enables or deactivates RESP3 support |
| roles_permissions | [{
  "role_uid": integer,
  "redis_acl_uid": integer
}, ...] |
| sched_policy | Controls how server-side connections are used when forwarding traffic to shards.
Values:
**cmp**: Closest to max_pipelined policy. Pick the connection with the most pipelined commands that has not reached the max_pipelined limit.
**mru**: Try to use most recently used connections.
**spread**: Try to use all connections.
**mnp**: Minimal pipeline policy. Pick the connection with the least pipelined commands. |
| search | [complex object](); Configuration fields for search and query. |
| shard_block_crossslot_keys | boolean (default: false); In Lua scripts, prevent use of keys from different hash slots within the range owned by the current shard |
| shard_block_foreign_keys | boolean (default: true); In Lua scripts, `foreign_keys` prevent use of keys which could reside in a different shard (foreign keys) |
| shard_key_regex | Custom keyname-based sharding rules.
`[{"regex": string}, ...]`
To use the default rules you should set the value to:
`[{"regex": ".*\\{(?<tag>.*)\\}.*"}, {"regex": "(?<tag>.*)"}]` |
| shard_imbalance_threshold | number (default: 314572800); Automatically balances shards only if their imbalance is greater than this threshold. This field is for future use and should not be changed. |
| shard_imbalance_threshold_percentage | integer (default: 20); Automatically balances shards only if their imbalance percentage is greater than this threshold. This field is for future use and should not be changed. |
| shard_list | array of integers; Cluster unique IDs of all database shards. |
| sharding | boolean (default: false); Cluster mode (server-side sharding). When true, shard hashing rules must be provided by either `oss_sharding` or `shard_key_regex` |
| shards_count | integer, <nobr>(range: 1-512)</nobr> (default: 1); Number of database server-side shards |
| shards_placement | Control the density of shards
Values:
**'dense'**: Shards reside on as few nodes as possible
 **'sparse'**: Shards reside on as many nodes as possible |
| skip_import_analyze | Enable/disable skipping the analysis stage when importing an RDB file
Values:
'enabled'
'disabled' |
| slave_buffer | Redis replica output buffer limits
Values:
'auto'
value in MB
hard:soft:time |
| slave_ha | boolean; Enable replica high availability mechanism for this database (default takes the cluster setting) |
| slave_ha_priority | integer; Priority of the BDB in replica high availability mechanism |
| snapshot_policy | array of [snapshot_policy]() objects; Policy for snapshot-based data persistence. A dataset snapshot will be taken every N secs if there are at least M writes changes in the dataset |
| ssl | boolean (default: false); Require SSL authenticated and encrypted connections to the database (deprecated as of Redis Software v5.0.1) |
| [status]() | Database lifecycle status (read-only)
Values:
'pending'
'active'
'active-change-pending'
'delete-pending'
'import-pending'
'creation-failed'
'recovery' |
| support_syncer_reconf | boolean; Determines whether the syncer handles its own configuration changes. If false, the DMC restarts the syncer upon a configuration change. |
| sync | (deprecated as of Redis Software v5.0.1, use [replica_sync]() or crdt_sync instead) Enable, disable, or pause syncing from specified sync_sources
Values:
'enabled'
 **'disabled'**
'paused'
'stopped' |
| sync_dedicated_threads | integer (range: 0-10) (default: 5); Number of dedicated Replica Of threads |
| sync_sources | [{
  "uid": integer,
  "uri": string,
  "compression": integer,
  "status": string,
  "rdb_transferred": integer,
  "rdb_size": integer,
  "last_update": string,
  "lag": integer,
  "last_error": string
}, ...] (deprecated as of Redis Software v5.0.1, instead use replica_sources or crdt_sources) Remote endpoints of database to sync from. See the 'bdb -\> replica_sources' section
**uid**: Numeric unique identification of this source
**uri**: Source Redis URI
**compression**: Compression level for the replication link
**status**: Sync status of this source
**rdb_transferred**: Number of bytes transferred from the source's RDB during the syncing phase
**rdb_size**: The source's RDB size to be transferred during the syncing phase
**last_update**: Time last update was received from the source
**lag**: Lag in millisec between source and destination (while synced)
**last_error**: Last error encountered when syncing from the source |
| syncer_log_level | Minimum syncer log level to log. Only logs with this level or higher will be logged.
Values:
‘crit’
‘error’
‘warn’
**‘info’**
‘trace’
‘debug’ |
| syncer_mode | The syncer for replication between database instances is either on a single node (centralized) or on each node that has a proxy according to the proxy policy (distributed). (read-only)
Values:
'distributed'
'centralized' |
| tags | [{
  "key": string,
  "value": string
}, ...] Optional list of tag objects attached to the database. Each tag requires a key-value pair.
**key**: Represents the tag's meaning and must be unique among tags (pattern does not allow special characters &,\<,>,")
**value**: The tag's value.|
| timeseries | [complex object](); Configuration fields for timeseries. |
| tls_mode | Require TLS-authenticated and encrypted connections to the database
Values:
'enabled'
 **'disabled'**
'replica_ssl' |
| tracking_table_max_keys | integer; The client-side caching invalidation table size. 0 makes the cache unlimited. |
| type | Type of database
Values:
**'redis'**
'memcached' |
| use_nodes | array of strings; Cluster node UIDs to use for database shards and bound endpoints |
| use_selective_flush | boolean (default: true); If true, enable selective flush of destination shards |
| version | string; Database compatibility version: full Redis/memcached version number, such as 6.0.6. This value can only change during database creation and database upgrades.|
| wait_command | boolean (default: true); Supports Redis wait command (read-only) |


title: Content

text:
Configuration fields for probabilistic data structures.

| Field | Type/Value | Description |
|-------|------------|-------------|
| bf-error-rate | number (range: 0-1) (default: 0.01) | Error ratio for new Bloom filters. These defaults are applied to each new Bloom filter upon its creation. |
| bf-initial-size | integer (range: 1-1048576) (default: 100) | Initial capacity for new Bloom filters. These defaults are applied to each new Bloom filter upon its creation. |
| bf-expansion-factor | integer (range: 0-32768) (default: 2) | Expansion factor for new Bloom filters. These defaults are applied to each new Bloom filter upon its creation. |
| cf-initial-size | integer (range: 1-1048576) (default: 1024) | Initial capacity for new Cuckoo filters. These defaults are applied to each new Cuckoo filter upon its creation. |
| cf-bucket-size | integer (range: 1-255) (default: 2) | Number of items in each bucket for new Cuckoo filters. These defaults are applied to each new Cuckoo filter upon its creation. |
| cf-max-iterations | integer (range: 1-65535) (default: 20) | Maximum iterations for new Cuckoo filters. These defaults are applied to each new Cuckoo filter upon its creation. |
| cf-expansion-factor | integer (range: 0-32768) (default: 1) | Expansion factor for new Cuckoo filters. These defaults are applied to each new Cuckoo filter upon its creation. |
| cf-max-expansions | integer (range: 1-65536) (default: 32) | Maximum expansions for new Cuckoo filters. These defaults are applied to each new Cuckoo filter upon its creation. |


title: Query performance factor object

title: Content

text:
Configures [query performance factor]() and related fields.

| Field | Type/Value | Description |
|-------|------------|-------------|
| active | boolean (default: false) | If true, enables query performance factor for the database |
| scaling_factor | integer (range: 0-16) (default: 0) | Scales the magnitude of the query performance factor |


title: BDB replica sources status field

title: Content

text:
The `replica_sources` status field relates to the [Replica Of]() feature, which enables the creation of a Redis database (single- or multi-shard) that synchronizes data from another Redis database (single- or multi-shard).

The status field represents the Replica Of sync status for a specific sync source.

Possible status values:

| Status | Description | Possible next status |
|--------|-------------|----------------------|
| 'out-of-sync' | Sync process is disconnected from source and trying to reconnect | 'syncing' |
| 'syncing' | Sync process is in progress | 'in-sync'
'out-of-sync' |
| 'in-sync' | Sync process finished successfully, and new commands are syncing on a regular basis | 'syncing'
'out-of-sync'


title: BDB replica sync field

title: Content

text:
The BDB `replica_sync` field relates to the [Replica Of]() feature, which enables the creation of a Redis database (single- or multi-shard) that synchronizes data from another Redis database (single- or multi-shard).

You can use the `replica_sync` field to enable, disable, or pause the [Replica Of]() sync process. The BDB `crdt_sync` field has a similar purpose for the Redis CRDB.

Possible BDB sync values:

| Status | Description | Possible next status |
|--------|-------------|----------------------|
| 'disabled' | (default value) Disables the sync process and represents that no sync is currently configured or running. | 'enabled' |
| 'enabled' | Enables the sync process and represents that the process is currently active. | 'stopped'
'paused' |
| 'paused' | Pauses the sync process. The process is configured but is not currently executing any sync commands. | 'enabled'
'stopped' |
| 'stopped' | An unrecoverable error occurred during the sync process, which caused the system to stop the sync. | 'enabled' |

When the sync is in the 'stopped' or 'paused' state, then the `last_error` field in the relevant source entry in the `sync_sources` "status" field contains the detailed error message.