{
  "schema_version": 2,
  "id": "operate/rs/references/compatibility/client-side-caching",
  "title": "Client-side caching compatibility with Redis Software and Redis Cloud",
  "url": "https://redis.io/docs/latest/operate/rs/references/compatibility/client-side-caching/",
  "summary": "Redis Software and Redis Cloud compatibility with client-side caching.",
  "tags": [
    "docs",
    "operate",
    "rs"
  ],
  "last_updated": "2026-09-24T10:14:21+01:00",
  "page_type": "content",
  "content_hash": "4e65e2d3172899a08762c3c3f458eb677a0eebe987bf777aaa5edceba787cca6",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Redis Software and Redis Cloud support [client-side caching](https://redis.io/docs/latest/develop/clients/client-side-caching) for databases with Redis versions 7.4 or later."
    },
    {
      "id": "required-database-versions",
      "title": "Required database versions",
      "role": "content",
      "text": "Client-side caching in Redis Software and Redis Cloud requires Redis database versions 7.4 or later.\n\nThe following table shows the differences in client-side caching support by product:\n\n| Redis product           | Client-side caching support |\n|-------------------------|-----------------------------|\n| Redis Open Source       | Redis v6.0 and later |\n| Redis Cloud             | Redis database v7.4 and later |\n| Redis Software          | Redis database v7.4 and later |"
    },
    {
      "id": "supported-resp-versions",
      "title": "Supported RESP versions",
      "role": "compatibility",
      "text": "Client-side caching in Redis Software and Redis Cloud requires [RESP3](https://redis.io/docs/latest/develop/reference/protocol-spec#resp-versions).\n\nThe following table shows the differences in client-side caching support for RESP by product:\n\n| Redis product with client-side caching  | RESP2 | RESP3 |\n|-------------------------|-------|-------|\n| Redis Open Source       | <span title=\"Supported\">&#x2705;</span> | <span title=\"Supported\">&#x2705;</span> |\n| Redis Cloud             | <span title=\"Not supported\">&#x274c;</span> | <span title=\"Supported\">&#x2705;</span> |\n| Redis Software          | <span title=\"Not supported\">&#x274c;</span> | <span title=\"Supported\">&#x2705;</span> |"
    },
    {
      "id": "two-connections-mode-with-redirect-not-supported",
      "title": "Two connections mode with REDIRECT not supported",
      "role": "content",
      "text": "Unlike Redis Open Source, Redis Software and Redis Cloud do not support [two connections mode](https://redis.io/docs/latest/develop/reference/client-side-caching#two-connections-mode) or the `REDIRECT` option for [`CLIENT TRACKING`](https://redis.io/docs/latest/commands/client-tracking)."
    },
    {
      "id": "change-tracking_table_max_keys-for-a-database",
      "title": "Change tracking_table_max_keys for a database",
      "role": "content",
      "text": "When client-side caching is enabled, Redis uses an invalidation table to track which keys are cached by each connected client.\n\nThe 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.\n\nTo change `tracking_table_max_keys` for a database in a Redis Software cluster:\n\n- [`rladmin tune db`](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/tune#tune-db):\n\n    [code example]\n\n    You can use the database name in place of `db:<ID>` in the preceding command.\n\n- [Update database configuration](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/bdbs#put-bdbs) REST API request:\n\n    [code example]"
    },
    {
      "id": "change-default-tracking_table_max_keys",
      "title": "Change default tracking_table_max_keys",
      "role": "content",
      "text": "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.\n\nTo change `default_tracking_table_max_keys_policy`, use one of the following methods:\n\n- [`rladmin tune cluster`](https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/tune#tune-cluster)\n\n    [code example]\n\n- [Update cluster policy](https://redis.io/docs/latest/operate/rs/references/rest-api/requests/cluster/policy#put-cluster-policy) REST API request:\n\n    [code example]"
    }
  ],
  "examples": [
    {
      "id": "change-tracking_table_max_keys-for-a-database-ex0",
      "language": "sh",
      "code": "rladmin tune db db:<ID> tracking_table_max_keys 2000000",
      "section_id": "change-tracking_table_max_keys-for-a-database"
    },
    {
      "id": "change-tracking_table_max_keys-for-a-database-ex1",
      "language": "sh",
      "code": "PUT /v1/bdbs/<uid> \n    { \"tracking_table_max_keys\": 2000000 }",
      "section_id": "change-tracking_table_max_keys-for-a-database"
    },
    {
      "id": "change-default-tracking_table_max_keys-ex0",
      "language": "sh",
      "code": "rladmin tune cluster default_tracking_table_max_keys_policy 2000000",
      "section_id": "change-default-tracking_table_max_keys"
    },
    {
      "id": "change-default-tracking_table_max_keys-ex1",
      "language": "sh",
      "code": "PUT /v1/cluster/policy \n    { \"default_tracking_table_max_keys_policy\": 2000000 }",
      "section_id": "change-default-tracking_table_max_keys"
    }
  ]
}
