{
  "schema_version": 2,
  "id": "operate/rs/databases/active-active/synchronization-mode",
  "title": "Configure distributed synchronization",
  "url": "https://redis.io/docs/latest/operate/rs/databases/active-active/synchronization-mode/",
  "summary": "How to configure distributed synchronization so that any available proxy endpoint can manage synchronization traffic.",
  "tags": [
    "docs",
    "operate",
    "rs"
  ],
  "last_updated": "2026-09-24T09:16:24+01:00",
  "page_type": "content",
  "content_hash": "764088c4e4a1714bd5d1b222c93c2474d01bf57813626946694d194a2ade0ff3",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "Replicated databases, such as [Replica Of](https://redis.io/docs/latest/operate/rs/databases/import-export/replica-of) and [Active-Active](https://redis.io/docs/latest/operate/rs/databases/active-active) databases,\nuse proxy endpoints to synchronize database changes with the databases on other participating clusters.\n\nTo improve the throughput and lower the latency for synchronization traffic,\nyou can configure a replicated database to use distributed synchronization where any available proxy endpoint can manage synchronization traffic.\n\nEvery database by default has one proxy endpoint that manages client and synchronization communication with the database shards,\nand that proxy endpoint is used for database synchronization.\nThis is called centralized synchronization.\n\nTo prepare a database to use distributed synchronization you must first make sure that the database [proxy policy](https://redis.io/docs/latest/operate/rs/databases/configure/proxy-policy)\nis defined so that either each node has a proxy endpoint or each primary (master) shard has a proxy endpoint.\nAfter you have multiple proxies for the database,\nyou can configure the database synchronization to use distributed synchronization."
    },
    {
      "id": "configure-distributed-synchronization",
      "title": "Configure distributed synchronization",
      "role": "configuration",
      "text": "> [!NOTE]\n> You may use the database name in place of `db:<ID>` in the following `rladmin` commands.\n\nTo configure distributed synchronization:\n\n1. To check the proxy policy for the database, run: `rladmin status`\n\n    The output of the status command shows the list of endpoints on the cluster and the proxy policy for the endpoint.\n\n    [code example]\n\n    If the proxy policy (also known as a _role_) is `single`, configure the policy to `all-nodes` or `all-master-shards` according to your needs with the command:\n\n    [code example]\n\n1. To configure the database to use distributed synchronization, run:\n\n    [code example]\n\n    To change back to centralized synchronization, run:\n\n    [code example]"
    },
    {
      "id": "verify-database-synchronization",
      "title": "Verify database synchronization",
      "role": "content",
      "text": "Use `rladmin` to verify a database synchronization role:\n\n[code example]\n\nThe current database role is reported as the `syncer_mode` value:\n\n[code example]"
    }
  ],
  "examples": [
    {
      "id": "configure-distributed-synchronization-ex0",
      "language": "sh",
      "code": "ENDPOINTS:\n    DB:ID       NAME      ID                        NODE          ROLE                                SSL\n    db:1        db        endpoint:1:1              node:1        all-master-shards                   No",
      "section_id": "configure-distributed-synchronization"
    },
    {
      "id": "configure-distributed-synchronization-ex1",
      "language": "sh",
      "code": "rladmin bind db db:<ID> endpoint <endpoint id> policy <all-master-shards|all-nodes>",
      "section_id": "configure-distributed-synchronization"
    },
    {
      "id": "configure-distributed-synchronization-ex2",
      "language": "sh",
      "code": "rladmin tune db db:<ID> syncer_mode distributed",
      "section_id": "configure-distributed-synchronization"
    },
    {
      "id": "configure-distributed-synchronization-ex3",
      "language": "sh",
      "code": "rladmin tune db db:<ID> syncer_mode centralized",
      "section_id": "configure-distributed-synchronization"
    },
    {
      "id": "verify-database-synchronization-ex0",
      "language": "sh",
      "code": "rladmin info db db:<ID>",
      "section_id": "verify-database-synchronization"
    },
    {
      "id": "verify-database-synchronization-ex1",
      "language": "sh",
      "code": "$ rladmin info db db:<ID>     \ndb:<ID> [<db_name>]:\n  // (Other settings removed) \n  syncer_mode: centralized",
      "section_id": "verify-database-synchronization"
    }
  ]
}
