Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions content/operate/rc/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ Both [Redis Enterprise Software]({{< relref "/operate/rs" >}}) and Redis Cloud a

Redis Enterprise Software and Redis Cloud support RESP2 and RESP3. In Redis Cloud, you can choose between RESP2 and RESP3 when you [create a database]({{< relref "/operate/rc/databases/create-database" >}}) and you can change it when you [edit a database]({{< relref "/operate/rc/databases/view-edit-database" >}}). For more information about the different RESP versions, see the [Redis serialization protocol specification]({{< relref "/develop/reference/protocol-spec" >}}#resp-versions).

## Client-side caching compatibility

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]({{<relref "/operate/rs/references/compatibility/client-side-caching">}}) for more information about compatibility.

## Compatibility with Redis Cluster API

Redis Cloud supports [Redis Cluster API]({{< relref "/operate/rc/databases/configuration/clustering#oss-cluster-api" >}}) on Redis Cloud Pro if it is enabled for a database. Review [Redis Cluster API architecture]({{< relref "/operate/rs/clusters/optimize/oss-cluster-api" >}}) to determine if you should enable this feature for your database.
8 changes: 7 additions & 1 deletion content/operate/rs/databases/memory-performance/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,10 @@ If applications need to access a value that is in flash, Redis
Enterprise automatically brings the value into RAM. Depending on the
flash hardware in use, applications experience slightly higher latency
when bringing values back into RAM from flash. However subsequent
accesses to the same value is fast, once the value is in RAM.
accesses to the same value is fast, once the value is in RAM.

## Client-side caching

Client-side caching allows Redis clients to store a subset of data in a local cache and avoid sending repeated requests to the Redis database. When used to cache frequently accessed data, this technique can improve performance by decreasing network traffic, latency, and load on the database. For more information about client-side caching, see the [client-side caching introduction]({{<relref "/develop/connect/clients/client-side-caching">}}).

Redis Software supports client-side caching for databases with Redis versions 7.4 and later. See [Client-side caching compatibility with Redis Software]({{<relref "/operate/rs/references/compatibility/client-side-caching">}}) for more information about compatibility and configuration options.
4 changes: 4 additions & 0 deletions content/operate/rs/references/cli-utilities/rladmin/tune.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ rladmin tune cluster
[ acl_pubsub_default { resetchannels | allchannels } ]
[ resp3_default { enabled | disabled } ]
[ automatic_node_offload { enabled | disabled } ]
[ default_tracking_table_max_keys_policy <value> ]
```

### Parameters
Expand All @@ -62,6 +63,7 @@ rladmin tune cluster
| default_redis_version | version number | The default Redis database compatibility version used to create new databases.<br/><br/> The value parameter should be a version number in the form of "x.y" where _x_ represents the major version number and _y_ represents the minor version number. The final value corresponds to the desired version of Redis.<br/><br/>You cannot set _default_redis_version_ to a value higher than that supported by the current _redis_upgrade_policy_ value. |
| default_sharded_proxy_policy | `single`<br /><br />`all-master-shards`<br /><br />`all-nodes` | Default [proxy policy]({{< relref "/operate/rs/databases/configure/proxy-policy" >}}) for newly created sharded databases' endpoints |
| default_shards_placement | `dense`<br />`sparse` | New databases place shards according to the default [shard placement policy]({{< relref "/operate/rs/databases/memory-performance/shard-placement-policy" >}}) |
| default_tracking_table_max_keys_policy | integer (default: 1000000) | Defines the default value of the client-side caching invalidation table size for new databases. 0 makes the cache unlimited. |
| expose_hostnames_for_all_suffixes | `enabled`<br />`disabled` | Exposes hostnames for all DNS suffixes |
| failure_detection_sensitivity | `high`<br />`low` | Predefined thresholds and timeouts for failure detection (previously known as `watchdog_profile`)<br />• `high` (previously `local-network`) – high failure detection sensitivity, lower thresholds, faster failure detection and failover<br />• `low` (previously `cloud`) – low failure detection sensitivity, higher tolerance for latency variance (also called network jitter) |
| login_lockout_counter_reset_after | time in seconds | Time after failed login attempt before the counter resets to 0 |
Expand Down Expand Up @@ -141,6 +143,7 @@ rladmin tune db { db:<id> | <name> }
[ data_internode_encryption { enabled | disabled } ]
[ db_conns_auditing { enabled | disabled } ]
[ resp3 { enabled | disabled } ]
[ tracking_table_max_keys <size> ]
```

### Parameters
Expand Down Expand Up @@ -186,6 +189,7 @@ rladmin tune db { db:<id> | <name> }
| slave_ha_priority | integer | Priority of the database in the replica high-availability mechanism |
| syncer_mode | `distributed`<br /> `centralized`| Configures syncer to run in distributed or centralized mode. For distributed syncer, the DMC policy must be all-nodes or all-master-nodes |
| syncer_monitoring | `enabled`<br /> `disabled` | Activates syncer monitoring |
| tracking_table_max_keys | integer | The client-side caching invalidation table size. 0 makes the cache unlimited. |

| XADD behavior mode | Description |
| - | - |
Expand Down
4 changes: 4 additions & 0 deletions content/operate/rs/references/compatibility/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ Both Redis Enterprise Software and [Redis Cloud]({{< relref "/operate/rc" >}}) a

Redis Enterprise Software and Redis Cloud support RESP2 and RESP3. See [RESP compatibility with Redis Enterprise]({{< relref "/operate/rs/references/compatibility/resp" >}}) for more information.

## Client-side caching compatibility

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]({{<relref "/operate/rs/references/compatibility/client-side-caching">}}) for more information about compatibility and configuration options.

## Compatibility with open source Redis Cluster API

Redis Enterprise supports [Redis OSS Cluster API]({{< relref "/operate/rs/clusters/optimize/oss-cluster-api" >}}) if it is enabled for a database. For more information, see [Enable OSS Cluster API]({{< relref "/operate/rs/databases/configure/oss-cluster-api" >}}).
84 changes: 84 additions & 0 deletions content/operate/rs/references/compatibility/client-side-caching.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
Title: Client-side caching compatibility with Redis Software and Redis Cloud
alwaysopen: false
categories:
- docs
- operate
- rs
description: Redis Software and Redis Cloud compatibility with client-side caching.
linkTitle: Client-side caching
toc: 'true'
weight: 80
---

Redis Software and Redis Cloud support [client-side caching]({{<relref "/develop/connect/clients/client-side-caching">}}) for databases with Redis versions 7.4 or later.

## Required database versions

Client-side caching in Redis Software and Redis Cloud requires Redis database versions 7.4 or later.

The following table shows the differences in client-side caching support by product:

| Redis product | Client-side caching support |
|-------------------------|-----------------------------|
| Redis Community Edition | Redis v6.0 and later |
| Redis Cloud | Redis database v7.4 and later |
| Redis Software | Redis database v7.4 and later |

## Supported RESP versions

Client-side caching in Redis Software and Redis Cloud requires RESP3.

The following table shows the differences in client-side caching support for RESP by product:

| Redis product with client-side caching | RESP2 | RESP3 |
|-------------------------|-------|-------|
| Redis Community Edition | <span title="Supported">&#x2705;</span> | <span title="Supported">&#x2705;</span> |
| Redis Cloud | <span title="Not supported">&#x274c;</span> | <span title="Supported">&#x2705;</span> |
| Redis Software | <span title="Not supported">&#x274c;</span> | <span title="Supported">&#x2705;</span> |

## Two connections mode with REDIRECT not supported

Unlike Redis Community Edition, Redis Software and Redis Cloud do not support [two connections mode]({{<relref "/develop/reference/client-side-caching#two-connections-mode">}}) or the `REDIRECT` option for [`CLIENT TRACKING`]({{<relref "/commands/client-tracking">}}).

## Change tracking_table_max_keys for a database

When client-side caching is enabled, Redis uses an invalidation table to track which keys are cached by each connected client.

The configuration setting `tracking-table-max-keys` determines the maximum number of keys stored in the invalidation table and is set to `1000000` keys by default. Redis Software does not support using `CONFIG SET` to change this value, but you can use the REST API or rladmin instead.

To change `tracking_table_max_keys` for a database in a Redis Software cluster:

- [`rladmin tune db`]({{<relref "/operate/rs/references/cli-utilities/rladmin/tune#tune-db">}}):

```sh
rladmin tune db db:<ID> tracking_table_max_keys 2000000
```

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

- [Update database configuration]({{<relref "/operate/rs/references/rest-api/requests/bdbs#put-bdbs">}}) REST API request:

```sh
PUT /v1/bdbs/<uid>
{ "tracking_table_max_keys": 2000000 }
```
## Change default tracking_table_max_keys
The cluster-wide option `default_tracking_table_max_keys_policy` determines the default value of `tracking_table_max_keys` for new databases in a Redis Software cluster. `default_tracking_table_max_keys_policy` is set to `1000000` keys by default.
To change `default_tracking_table_max_keys_policy`, use one of the following methods:
- [`rladmin tune cluster`]({{<relref "/operate/rs/references/cli-utilities/rladmin/tune#tune-cluster">}})
```sh
rladmin tune cluster default_tracking_table_max_keys_policy 2000000
```
- [Update cluster policy]({{<relref "/operate/rs/references/rest-api/requests/cluster/policy#put-cluster-policy">}}) REST API request:
```sh
PUT /v1/cluster/policy
{ "default_tracking_table_max_keys_policy": 2000000 }
```
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Redis Enterprise Software and [Redis Cloud]({{< relref "/operate/rc" >}}) only s
| slowlog-max-len | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | Value must be between 128 and 1024. |
| stream-node-max-bytes | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | |
| stream-node-max-entries | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | |
| tracking-table-max-keys | <span title="Not supported">&#x274c; Standard</span><br /><span title="Not supported"><nobr>&#x274c; Active-Active</nobr></span> | <span title="Not supported">&#x274c; Standard</span><br /><span title="Not supported"><nobr>&#x274c; Active-Active</nobr></span> | For Redis Software, use an [update database configuration]({{<relref "operate/rs/references/rest-api/requests/bdbs#put-bdbs">}}) REST API request or [`rladmin tune db`]({{<relref "/operate/rs/references/cli-utilities/rladmin/tune#tune-db">}}) to set `tracking_table_max_keys` instead. |
| zset-max-listpack-entries | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | |
| zset-max-listpack-value | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | |
| zset-max-ziplist-entries | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | <span title="Supported">&#x2705; Standard</span><br /><span title="Supported"><nobr>&#x2705; Active-Active</nobr></span> | |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ An API object that represents a managed database in the cluster.
| 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)<br />Values:<br />'distributed'<br />'centralized' |
| tags | {{<code>}}[{<br /> "key": string,<br /> "value": string<br />}, ...]{{</code>}} Optional list of tag objects attached to the database. Each tag requires a key-value pair.<br />**key**: Represents the tag's meaning and must be unique among tags (pattern does not allow special characters &,\<,>,")<br />**value**: The tag's value.|
| tls_mode | Require TLS-authenticated and encrypted connections to the database<br />Values:<br />'enabled'<br /> **'disabled'** <br />'replica_ssl' |
| tracking_table_max_keys | integer; The client-side caching invalidation table size. 0 makes the cache unlimited. |
| type | Type of database<br />Values:<br />**'redis'** <br />'memcached' |
| use_nodes | array of strings; Cluster node UIDs to use for database shards and bound endpoints |
| 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.|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Cluster resources management policy
| default_provisioned_redis_version | string | Default Redis version |
| default_sharded_proxy_policy | `single`<br /><br />`all-master-shards`<br /><br />`all-nodes` | Default proxy_policy for newly created sharded databases' endpoints |
| default_shards_placement | `dense`<br />`sparse` | Default shards_placement for a newly created databases |
| default_tracking_table_max_keys_policy | integer (default: 1000000) | Defines the default value of the client-side caching invalidation table size for new databases. 0 makes the cache unlimited. |
| endpoint_rebind_propagation_grace_time | integer | Time to wait between the addition and removal of a proxy |
| failure_detection_sensitivity | `high`<br />`low` | Predefined thresholds and timeouts for failure detection (previously known as <span class="break-all">`watchdog_profile`</span>)<br />• `high` (previously `local-network`) – high failure detection sensitivity, lower thresholds, faster failure detection and failover<br />• `low` (previously `cloud`) – low failure detection sensitivity, higher tolerance for latency variance (also called network jitter) |
| login_lockout_counter_reset_after | integer | Number of seconds that must elapse between failed sign in attempts before the lockout counter is reset to 0. |
Expand Down